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 查询语句。


相关推荐
建投数据42 分钟前
建投数据与腾讯云数据库TDSQL完成产品兼容性互认证
数据库·腾讯云
Hacker_LaoYi2 小时前
【渗透技术总结】SQL手工注入总结
数据库·sql
岁月变迁呀2 小时前
Redis梳理
数据库·redis·缓存
独行soc2 小时前
#渗透测试#漏洞挖掘#红蓝攻防#护网#sql注入介绍06-基于子查询的SQL注入(Subquery-Based SQL Injection)
数据库·sql·安全·web安全·漏洞挖掘·hw
你的微笑,乱了夏天2 小时前
linux centos 7 安装 mongodb7
数据库·mongodb
工业甲酰苯胺2 小时前
分布式系统架构:服务容错
数据库·架构
独行soc3 小时前
#渗透测试#漏洞挖掘#红蓝攻防#护网#sql注入介绍08-基于时间延迟的SQL注入(Time-Based SQL Injection)
数据库·sql·安全·渗透测试·漏洞挖掘
White_Mountain4 小时前
在Ubuntu中配置mysql,并允许外部访问数据库
数据库·mysql·ubuntu
Code apprenticeship4 小时前
怎么利用Redis实现延时队列?
数据库·redis·缓存
百度智能云技术站4 小时前
广告投放系统成本降低 70%+,基于 Redis 容量型数据库 PegaDB 的方案设计和业务实践
数据库·redis·oracle