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 中最常见的基本语法,具体的应用和更复杂的操作可以根据实际需求和优化目标进行调整。