Mysql的基础语法

113 阅读3分钟

学之,则难者亦易矣;

不学,则易者亦难矣 。

点个赞,别让我一个人看起来太过自恋。

  1. 查询数据库:

    SHOW DATABASES;
    
  2. 查询表:

    SHOW TABLES;
    
  3. 查询表字段:

    SHOW COLUMNS FROM user;
    
  4. 显示服务器状态:

    SHOW STATUS;
    
  5. 查询MySQL的版本:

    SELECT VERSION();
    
  6. 使用DISTINCT去重:

    SELECT DISTINCT gender, emp_no FROM employees;
    
  7. LIMIT和OFFSET进行分页:

    SELECT * FROM employees LIMIT 5;
    SELECT * FROM employees LIMIT 5 OFFSET 5;
    
  8. ORDER BY排序:

    SELECT * FROM employees ORDER BY gender DESC, last_name;
    

    注意:ORDER BY子句的位置应该在FROM子句之后,如果使用LIMIT,它必须在ORDER BY之后。

  9. 使用括号明确逻辑:

    SELECT * FROM salaries WHERE (emp_no = 10005 OR emp_no = 10006) AND salary > 1000000;
    
  10. 使用NOT关键字:

    SELECT * FROM employees WHERE emp_no NOT IN (10005) ORDER BY emp_no;
    
  11. 使用LIKE进行模糊查询:

    SELECT * FROM employees WHERE first_name LIKE 'C%n';
    
  12. 正则表达式查询:

    SELECT * FROM employees WHERE first_name REGEXP 'C';
    
  13. 字符串拼接和去空格:

    SELECT CONCAT(RTRIM(first_name), '(', last_name, ')') FROM employees;
    
  14. 操作时间的语句:

    SELECT NOW() AS time;
    SELECT CURDATE();
    SELECT CURTIME();
    SELECT DATE('1986-01-01');
    
  15. 过滤日期范围:

    SELECT * FROM test.employees WHERE DATE(hire_date) > '1986-01-01';
    
  16. 汇总数据:

    SELECT AVG(salary) FROM salaries;
    
  17. NULL值处理:

    SELECT COUNT(*) FROM table_name WHERE column_name IS NOT NULL;
    
  18. 分组和聚合:

    SELECT gender, COUNT(1) FROM employees GROUP BY gender WITH ROLLUP;
    SELECT gender, COUNT(1) FROM employees GROUP BY gender HAVING COUNT(1) > 3;
    
  19. UNION的用法:

    SELECT vend_id, prod_id, prod_price FROM products WHERE prod_price < 5
    UNION
    SELECT vend_id, prod_id, prod_price FROM products WHERE vend_id IN (1001, 1002) ORDER BY vend_id, prod_price;
    
  20. 创建备份表:

    CREATE TABLE backup_table AS SELECT * FROM original_table;
    
  21. 查看索引:

    SHOW INDEX FROM your_table_name;
    
  22. 添加索引:

    ALTER TABLE user ADD INDEX idx_address_age (address, age);
    
  23. 删除索引:

    DROP INDEX index_name ON table_name;
    

存储过程和事务

MySQL还支持存储过程和事务的操作:

  • 创建存储过程:

    DELIMITER //
    CREATE PROCEDURE productpricing()
    BEGIN
    SELECT AVG(prod_price) AS price_average FROM products;
    END //
    DELIMITER ;
    
  • 执行存储过程:

    CALL productpricing;
    
  • 删除存储过程:

    DROP PROCEDURE productpricing;
    
  • 事务的使用:

    START TRANSACTION;
    DELETE FROM table_name;
    SELECT * FROM table_name;
    ROLLBACK;
    

MySQL数据库的基础操作(续)

  1. 正则表达式匹配注意事项: MySQL中的正则表达式匹配在版本3.23.4后不区分大小写,但可以使用BINARY关键字来区分大小写:

    SELECT * FROM employees WHERE first_name REGEXP BINARY 'C';
    
  2. 获取最后插入的ID:

    SELECT LAST_INSERT_ID() AS last_inserted_id;
    
  3. 查询创建的视图:

    SHOW CREATE VIEW view_name;
    
  4. 备份整张表:

    CREATE TABLE backup_table AS SELECT * FROM original_table;
    
  5. MyISAM的文本匹配:

    SELECT note_text, MATCH(note_text) AGAINST ('rabbit') AS rank FROM productnotes;
    
  6. 查看MyISAM表的索引统计信息:

    SHOW INDEX FROM table_name;
    
  7. 事务的提交:

    COMMIT;
    

索引相关操作

  1. 查看索引:

    SHOW INDEX FROM your_table_name;
    
  2. 添加索引:

    ALTER TABLE user ADD INDEX idx_address_age (address, age);
    
  3. 删除索引:

    DROP INDEX index_name ON table_name;
    

📷:拍了一根草

D650900D-A5C0-45B7-A246-D97000BE99A9-29512-0000229B56C34CBA.jpg

这里有一些文章可能对你有www.yuque.com/liangliang-… 最后点赞关注,这个对我真的很重要

「白嫖也喜欢你」