MySQL 常用查询语句精粹

引言

MySQL 是一种广泛使用的开源关系型数据库管理系统,其强大的查询语言为用户提供了丰富的数据处理能力。掌握 MySQL 的常用查询语句对于数据库管理和数据分析至关重要。本文将介绍一些 MySQL 中的常用查询语句,并提供实际的示例。

基础查询

1. 选择特定列

sql 复制代码
SELECT column1, column2 FROM table_name;

这个语句从 table_name 表中选择 column1column2 列。

2. 选择所有列

sql 复制代码
SELECT * FROM table_name;

使用星号(*)代表选择所有列。

3. 限制结果数量

sql 复制代码
SELECT * FROM table_name LIMIT number;

使用 LIMIT 子句限制查询结果的数量。

4. 去重查询

sql 复制代码
SELECT DISTINCT column1 FROM table_name;

使用 DISTINCT 关键字返回唯一不同的值。

条件查询

5. 使用 WHERE 子句

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

WHERE 子句用于过滤记录,以满足指定的条件。

6. 比较运算符

sql 复制代码
SELECT * FROM table_name WHERE column1 = 'value';

使用比较运算符(如 =, <>, >, <, >=, <=)来指定条件。

7. 逻辑运算符

sql 复制代码
SELECT * FROM table_name WHERE column1 = 'value' AND column2 < 100;

使用逻辑运算符(如 AND, OR, NOT)来组合多个条件。

8. 范围查询

sql 复制代码
SELECT * FROM table_name WHERE column1 BETWEEN value1 AND value2;

BETWEEN 子句用于选择在两个值之间的数据。

9. 模式匹配

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

使用 LIKE 操作符和百分号(%)进行模式匹配。

10. 空值检查

sql 复制代码
SELECT * FROM table_name WHERE column1 IS NULL;

检查列值是否为 NULL

数据排序

11. 升序排序

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

使用 ASC 关键字对结果进行升序排序。

12. 降序排序

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

使用 DESC 关键字对结果进行降序排序。

13. 多列排序

sql 复制代码
SELECT * FROM table_name ORDER BY column1 ASC, column2 DESC;

根据多个列进行排序,每个列可以指定不同的排序方向。

数据聚合

14. 使用聚合函数

sql 复制代码
SELECT COUNT(*), AVG(column1), SUM(column1), MAX(column1), MIN(column1) FROM table_name;

聚合函数用于计算数据的总数、平均值、总和、最大值和最小值。

15. 聚合与分组

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

使用 GROUP BY 子句按一个或多个列对结果集进行分组,并进行聚合计算。

连接查询

16. 内连接

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

内连接用于返回两个表中匹配连接条件的记录。

17. 左连接

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

左连接返回左表(table1)的所有记录,即使右表(table2)中没有匹配的记录。

18. 右连接

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

右连接返回右表(table2)的所有记录,即使左表(table1)中没有匹配的记录。

19. 全外连接

sql 复制代码
SELECT * FROM table1 FULL OUTER JOIN table2 ON table1.column_name = table2.column_name;

全外连接返回两个表中的所有记录,无论它们是否匹配连接条件。

子查询

20. 带子查询的查询

sql 复制代码
SELECT * FROM table_name WHERE column1 IN (SELECT column1 FROM other_table);

子查询通常用于返回一个值列表,该列表用于主查询的条件判断。

21. 子查询与聚合

sql 复制代码
SELECT AVG(column1) AS average FROM table_name WHERE column1 > (SELECT AVG(column1) FROM other_table);

子查询可以执行聚合操作,并与主查询进行比较。

数据操作

22. 插入数据

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

向表中插入新行。

23. 更新数据

sql 复制代码
UPDATE table_name SET column1 = 'new_value' WHERE condition;

更新满足条件的记录。

24. 删除数据

sql 复制代码
DELETE FROM table_name WHERE condition;

删除满足条件的记录。

结语

MySQL 提供了丰富的查询语句,以满足不同场景下的数据操作需求。从简单的数据检索到复杂的数据分析,MySQL 的查询语句都是强大而灵活的工具。希望本文能帮助你更好地理解和使用 MySQL 查询语句。


相关推荐
老纪的技术唠嗑局15 小时前
超级干货分享:中小企业使用 OceanBase 实践经验汇总
数据库
CLOUD ACE16 小时前
谷歌云代理|零售商Target 如何利用 Spanner Graph 提升零售发现体验并将数据库维护成本降低 50%
数据库·零售
AI大模型-小雄16 小时前
Codex写分页接口为什么越翻越慢?用Cursor Pagination解决重复与漏数据
大数据·数据库·elasticsearch·搜索引擎·chatgpt·后端开发·codex
少晓年17 小时前
从 MySQL 迁移到人大金仓 KingbaseES:完整指南与实践
数据库·mysql
SelectDB17 小时前
Apache Doris AI RAG 实战:从基础 RAG 到知识图谱增强的技术能力与选型
数据库
SelectDB17 小时前
电商企业 PostgreSQL 迁移 Apache Doris:80TB 分析数据统一平台技术能力与实践
数据库
SelectDB17 小时前
阶跃星辰 Agent 可观测:Apache Doris / SelectDB 的技术能力与实践
数据库
SelectDB17 小时前
ApacheDoris Iceberg V3 湖仓 DML:Apache Doris / SelectDB 的技术能力与实践
数据库
SelectDB17 小时前
ApacheDoris Python UDF:SQL 调用 Python 的技术能力、选型对比与实践
数据库
Crazy________18 小时前
Redis03:持久化存储,大key分析,主从复制及哨兵模式
数据库·redis·容器