MySQL 常见语法汇集总结

MySQL 是一个功能强大的开源数据库管理系统,它支持一系列复杂的 SQL 查询和操作指令。以下是常见的 MySQL 语法汇总,涵盖了数据定义、数据操作、查询、索引管理、事务控制等方面。

1. 数据库管理

  • 创建数据库
    CREATE DATABASE db_name;
    
  • 删除数据库
    DROP DATABASE db_name;
    
  • 选择数据库
    USE db_name;
    
  • 查看数据库
    SHOW DATABASES;
    
  • 查看当前数据库
    SELECT DATABASE();
    
  • 删除数据库中所有表
    DROP DATABASE db_name;
    

2. 表管理

  • 创建表
    CREATE TABLE table_name (
        column1 datatype constraint,
        column2 datatype constraint,
        ...
    );
    
  • 删除表
    DROP TABLE table_name;
    
  • 查看表结构
    DESCRIBE table_name;
    
  • 修改表结构(添加列)
    ALTER TABLE table_name ADD column_name datatype;
    
  • 修改表结构(删除列)
    ALTER TABLE table_name DROP COLUMN column_name;
    
  • 修改表结构(修改列名或数据类型)
    ALTER TABLE table_name CHANGE old_column_name new_column_name datatype;
    

3. 数据操作

  • 插入数据
    INSERT INTO table_name (column1, column2, ...)
    VALUES (value1, value2, ...);
    
  • 批量插入数据
    INSERT INTO table_name (column1, column2, ...)
    VALUES (value1, value2, ...), (value3, value4, ...), ...;
    
  • 更新数据
    UPDATE table_name
    SET column1 = value1, column2 = value2, ...
    WHERE condition;
    
  • 删除数据
    DELETE FROM table_name
    WHERE condition;
    
  • 删除所有数据
    TRUNCATE TABLE table_name;
    

4. 查询操作

  • 查询所有数据
    SELECT * FROM table_name;
    
  • 查询指定列
    SELECT column1, column2 FROM table_name;
    
  • 查询并去重
    SELECT DISTINCT column_name FROM table_name;
    
  • 查询指定条件的记录
    SELECT * FROM table_name WHERE condition;
    
  • 多条件查询(AND, OR)
    SELECT * FROM table_name WHERE condition1 AND condition2;
    SELECT * FROM table_name WHERE condition1 OR condition2;
    
  • 查询排序
    SELECT * FROM table_name ORDER BY column_name [ASC|DESC];
    
  • 查询前 N 条记录
    SELECT * FROM table_name LIMIT N;
    
  • 分页查询
    SELECT * FROM table_name LIMIT offset, count;
    

5. 聚合函数

  • 计数
    SELECT COUNT(*) FROM table_name;
    
  • 求和
    SELECT SUM(column_name) FROM table_name;
    
  • 平均值
    SELECT AVG(column_name) FROM table_name;
    
  • 最大值
    SELECT MAX(column_name) FROM table_name;
    
  • 最小值
    SELECT MIN(column_name) FROM table_name;
    
  • 分组查询
    SELECT column_name, COUNT(*) FROM table_name GROUP BY column_name;
    

6. 连接操作(JOIN)

  • 内连接(INNER JOIN)
    SELECT columns
    FROM table1
    INNER JOIN table2 ON table1.column = table2.column;
    
  • 左连接(LEFT JOIN)
    SELECT columns
    FROM table1
    LEFT JOIN table2 ON table1.column = table2.column;
    
  • 右连接(RIGHT JOIN)
    SELECT columns
    FROM table1
    RIGHT JOIN table2 ON table1.column = table2.column;
    
  • 自连接(SELF JOIN)
    SELECT a.column1, b.column2
    FROM table_name a, table_name b
    WHERE a.column1 = b.column2;
    

7. 索引操作

  • 创建索引
    CREATE INDEX index_name ON table_name (column_name);
    
  • 删除索引
    DROP INDEX index_name ON table_name;
    
  • 查看所有索引
    SHOW INDEXES FROM table_name;
    

8. 视图操作

  • 创建视图
    CREATE VIEW view_name AS
    SELECT column1, column2 FROM table_name WHERE condition;
    
  • 查看视图
    SHOW TABLES;
    
  • 删除视图
    DROP VIEW view_name;
    

9. 事务控制

  • 开始事务
    START TRANSACTION;
    
  • 提交事务
    COMMIT;
    
  • 回滚事务
    ROLLBACK;
    

10. 用户管理

  • 创建用户
    CREATE USER 'username'@'host' IDENTIFIED BY 'password';
    
  • 赋予权限
    GRANT ALL PRIVILEGES ON db_name.* TO 'username'@'host';
    
  • 查看用户权限
    SHOW GRANTS FOR 'username'@'host';
    
  • 撤销权限
    REVOKE ALL PRIVILEGES ON db_name.* FROM 'username'@'host';
    
  • 删除用户
    DROP USER 'username'@'host';
    

11. 存储过程与触发器

  • 创建存储过程
    DELIMITER //
    CREATE PROCEDURE procedure_name()
    BEGIN
      SQL statements;
    END //
    DELIMITER ;
    
  • 调用存储过程
    CALL procedure_name();
    
  • 创建触发器
    CREATE TRIGGER trigger_name
    BEFORE|AFTER INSERT|UPDATE|DELETE ON table_name
    FOR EACH ROW
    BEGIN
      SQL statements;
    END;
    
  • 删除触发器
    DROP TRIGGER trigger_name;
    

12. 备份与恢复

  • 备份数据库
    mysqldump -u username -p db_name > backup_file.sql
    
  • 恢复数据库
    mysql -u username -p db_name < backup_file.sql
    

13. 其他常用操作

  • 查看当前的数据库连接
    SHOW PROCESSLIST;
    
  • 锁定表
    LOCK TABLES table_name WRITE;
    
  • 解锁表
    UNLOCK TABLES;
    

这些只是 MySQL 中最常见的基本语法,具体的应用和更复杂的操作可以根据实际需求和优化目标进行调整。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

风_流沙

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值