在SQL中,查询的执行顺序与编写顺序是不一样的。SQL查询的解析和执行过程是由数据库管理系统(DBMS)的查询优化器来管理的,它会对查询语句进行重写和优化,以达到更高效的数据检索。了解查询的执行顺序对于优化查询性能和正确理解查询逻辑非常重要。
一个查询语句通常为以下几个步骤:(不同的数据库系统具体的实现细节可能不同)
1. FROM和JOIN
FROM与JOIN第一个执行。确定数据范围,从哪个表或哪些表中检索数据。
2. WHERE
在根据范围内通过WHERE语句进行数据筛选,筛选出符合条件的数据。 此时不能使用AS别名。
3. GROUP BY
使用GROUP BY对前面筛选过的数据进行分组
4. HAVING
HAVING用于过滤分组后的数据 。
**MySQL在HAVING后面可以使用AS别名:
https://dev.mysql.com/doc/refman/8.0/en/problems-with-alias.html

5. SELECT
确定结果后,SELECT对结果列进行筛选或计算,决定输出哪些结果列数据
6.DISTINCT
输出的数据若存在重复,DISTINCT进行去重
7. ORDER BY
结果已确定,ORDER BY对结果进行排序。(SELECT已执行完毕,此时可以使用AS别名)
8、LIMIT OFFSET
LIMIT OFFSET 从排序的结果中截取数据,用于限制返回的行数

4062

被折叠的 条评论
为什么被折叠?



