当前位置: 首页 > news >正文

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_columnSET 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,CASEWHEN 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 数据库。


http://www.mrgr.cn/news/52.html

相关文章:

  • UE5学习笔记15-BginPlay事件、Tick事件
  • 前端(Vue)动态换肤的通用解决方案及原理分析(2)
  • 《基于CT的人工智能预后模型在非小细胞肺癌切除术中的临床应用》| 文献速递-基于深度学习的乳房、前列腺疾病诊断系统
  • 智能外呼机器人助力电销
  • C++ | Leetcode C++题解之第342题4的幂
  • 基于SpringBoot框架的能源管理系统源代码(100%开源无加密)
  • Android -- 谷歌地图绘制
  • Haproxy、mysql读写分离、python读写分离
  • 无法判断编程器固件类型
  • Django基础之MTV模型
  • Xilinx XAPP585相关
  • Delphi中的魔法注入:依赖注入的神秘面纱
  • 测试金山文档 | WPS云文档
  • android13顶部状态栏里面调节背光 背景闪烁问题
  • 计算机网络面试题汇总
  • OpenCV带α通道图像读取
  • 15:00面试,15:08就出来了,问的问题有点变态。。。
  • MATLAB基于深度学习的车辆检测系统
  • Visual Studio Code中实现移到行尾加分号或逗号并换行
  • React Native中好用的UI组件库