MySQL 常用 SQL 语句大全

1. 基本查询

查询所有记录和字段

复制代码
SELECT * FROM table_name;

查询特定字段

复制代码
SELECT column1, column2 FROM table_name;

查询并限制结果

复制代码
SELECT column1, column2 FROM table_name LIMIT 10;

条件查询

复制代码
SELECT column1, column2 FROM table_name WHERE condition;

模糊匹配

复制代码
SELECT column1 FROM table_name WHERE column2 LIKE 'pattern%';

匹配多个值

复制代码
SELECT column1 FROM table_name WHERE column2 IN (value1, value2);

不匹配某些值

复制代码
SELECT column1 FROM table_name WHERE column2 NOT IN (value1, value2);

2. 数据插入

插入单条记录

复制代码
INSERT INTO table_name (column1, column2) VALUES (value1, value2);

插入多条记录

复制代码
INSERT INTO table_name (column1, column2) VALUES (value1, value2), (value3, value4);

从另一个表插入数据

复制代码
INSERT INTO table1 (column1, column2)
SELECT column1, column2 FROM table2 WHERE condition;

3. 数据更新

更新单条记录

复制代码
UPDATE table_name SET column1 = value1 WHERE condition;

批量更新

复制代码
UPDATE table_name SET column1 = value1, column2 = value2 WHERE condition;

基于其他表的更新(关联更新)

复制代码
UPDATE table1
JOIN table2 ON table1.common_column = table2.common_column

SET table1.column1 = table2.column2
WHERE table2.condition;

4. 数据删除

删除单条记录

复制代码
DELETE FROM table_name WHERE condition;

批量删除

复制代码
DELETE FROM table_name WHERE condition;

删除表中的所有记录(也叫截断表)

复制代码
TRUNCATE TABLE table_name;

5. 表操作

创建表

复制代码
CREATE TABLE table_name (
? ? id INT AUTO_INCREMENT PRIMARY KEY,
? ? column1 VARCHAR(255) NOT NULL,
? ? column2 INT DEFAULT 0,
? ? created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);

修改表结构

添加列

复制代码
ALTER TABLE table_name ADD column_name VARCHAR(255);

删除列

复制代码
ALTER TABLE table_name DROP COLUMN column_name;

修改列类型

复制代码
ALTER TABLE table_name MODIFY column_name INT;

重命名列

复制代码
ALTER TABLE table_name CHANGE old_column_name new_column_name VARCHAR(255);

删除表

复制代码
DROP TABLE table_name;

删除数据库

复制代码
DROP DATABASE database_name;

6. 索引管理

创建索引

复制代码
CREATE INDEX index_name ON table_name (column_name);

创建唯一索引

复制代码
CREATE UNIQUE INDEX index_name ON table_name (column_name);

删除索引

复制代码
DROP INDEX index_name ON table_name;

7. 表连接

内连接(INNER JOIN)

复制代码
SELECT * FROM table1
INNER JOIN table2 ON table1.common_column = table2.common_column;

左连接(LEFT JOIN)

复制代码
SELECT * FROM table1
LEFT JOIN table2 ON table1.common_column = table2.common_column;

右连接(RIGHT JOIN)

复制代码
SELECT * FROM table1
RIGHT JOIN table2 ON table1.common_column = table2.common_column;

全连接(FULL JOIN)

复制代码
SELECT * FROM table1
LEFT JOIN table2 ON table1.common_column = table2.common_column
UNION
SELECT * FROM table1
RIGHT JOIN table2 ON table1.common_column = table2.common_column;

8. 聚合函数

计数

复制代码
SELECT COUNT(*) FROM table_name;

平均值

复制代码
SELECT AVG(column_name) FROM table_name;

总和

复制代码
SELECT SUM(column_name) FROM table_name;

最大值

复制代码
SELECT MAX(column_name) FROM table_name;

最小值

复制代码
SELECT MIN(column_name) FROM table_name;

9. 分组与排序

分组

复制代码
SELECT column1, COUNT(*) FROM table_name
GROUP BY column1;

排序

复制代码
SELECT * FROM table_name
ORDER BY column1 ASC;

SELECT * FROM table_name
ORDER BY column1 DESC;

分页

复制代码
SELECT * FROM table_name
LIMIT 10 OFFSET 20;

10. 子查询

在 WHERE 子句中

复制代码
SELECT * FROM table_name
WHERE column1 = (SELECT MAX(column1) FROM table_name);

在 FROM 子句中

复制代码
SELECT * FROM (SELECT column1, column2 FROM table_name) AS subquery
WHERE condition;

11. 条件表达式

使用 CASE

复制代码
SELECT column1,
? ? CASE
? ? ? ? WHEN condition1 THEN 'result1'
? ? ? ? WHEN condition2 THEN 'result2'
? ? ? ? ELSE 'default'
? ? END AS new_column
FROM table_name;

12. 事务管理

开始事务

复制代码
START TRANSACTION;

提交事务

复制代码
COMMIT;

回滚事务

复制代码
ROLLBACK;

13. 备份与恢复

备份

复制代码
mysqldump -u username -p database_name > backup_file.sql

恢复

复制代码
mysql -u username -p database_name < backup_file.sql

14. 用户管理

创建用户

复制代码
CREATE USER 'username'@'host' IDENTIFIED BY 'password';

授予权限

复制代码
GRANT ALL PRIVILEGES ON database_name.* TO 'username'@'host';

撤销权限

复制代码
REVOKE ALL PRIVILEGES ON database_name.* FROM 'username'@'host';

删除用户

复制代码
DROP USER 'username'@'host';

15. 表和数据库信息

查看表结构

复制代码
DESCRIBE table_name;

查看数据库列表

复制代码
SHOW DATABASES;

查看表列表

复制代码
SHOW TABLES;

查看表的索引

复制代码
SHOW INDEX FROM table_name;

查看表的创建语句

复制代码
SHOW CREATE TABLE table_name;

16. 查询优化

查看查询计划

复制代码
EXPLAIN SELECT * FROM table_name WHERE condition;

查看慢查询日志

复制代码
SHOW VARIABLES LIKE 'slow_query_log';

启用慢查询日志:

复制代码
SET GLOBAL slow_query_log = 'ON';

查看当前的数据库状态

复制代码
SHOW STATUS;

17. 其他实用操作

计算字段的平均值和总和

复制代码
SELECT column1, AVG(column2), SUM(column2) FROM table_name GROUP BY column1;

使用 GROUP_CONCAT 函数

复制代码
SELECT column1, GROUP_CONCAT(column2) FROM table_name GROUP BY column1;

这些 SQL 语句和技巧覆盖了数据库操作的广泛领域,从基础查询到高级管理和优化。掌握这些可以帮助你更高效地管理和操作 MySQL 数据库。

相关推荐
聚美智数16 分钟前
智能结构化识别-图片结构解析-图像结构化解析-照片结构化解析
android·java·数据库
瀚高PG实验室30 分钟前
瀚高数据库常用系统表查询入门指南(附常用SQL)
数据库·sql·postgresql·瀚高数据库
ben9518chen1 小时前
mysql数据库基本操作
数据库·mysql
2603_965148111 小时前
电商选品调研:通过关键词搜索API获取市场热销商品,结合商品详情API分析竞品卖点与定价
开发语言·数据库·人工智能·python·信息可视化
土豆.exe1 小时前
nf_tables 的 verdict 被读了两次:一个十年未闭合的位域错配
java·数据库·网络安全·缓存
缓慢更新2 小时前
表单引擎的存储建模:宽表与文档库的取舍
运维·服务器·网络·数据库·低代码·oracle·适配器模式
Web3&Basketball3 小时前
实测Gemini4Argon:ERQA 87%登顶长程任务榜
数据库·python·大模型·多模态·gemini·长上下文·推理优化
xiaogai_gai4 小时前
金蝶收料通知单查询策略实战教程:从源系统拉取到中间层落地的完整路径
java·前端·数据库
注塑机数据采集联网4 小时前
注塑机数据采集网关对接MES系统数字化技术方案
大数据·网络·数据库·物联网·数据挖掘·数据分析
像风一样自由20204 小时前
56.实战PostgreSQL-pgvector-FastAPI构建轻量级RAG
数据库·人工智能·postgresql·大模型·fastapi·智能体