一,mysql的编写顺序和执行顺序是不同的,根据以下例子进行分析,思考如何执行:
# 后面序号代表执行顺
SELECT (7)
DISTINCT (8)
*
FROM (1)
student
LEFT JOIN (3)
t_user t
on (2)
studentId = t.id
WHERE (4)
studentId=1
GROUP BY studentAge (5)
HAVING COUNT(studentAge) >10 (6)
ORDER BY studentId (9)
LIMIT 1 (10)
二,执行sql语句理解:
-
from:先指定了要查询的表
-
on: 过滤出所有满足on条件的列
-
jion:添加外部列
-
where:过滤表中数据的条件
-
group by:对过滤的数据进行分组
-
having:对上面已经分组的数据进行过滤的条件
-
select:查看结果集中的哪个列,或列的计算结果
-
order by :对查询结果进行排序
-
limit:取出指定行的数据,返给用户
网上图一张加深记忆:

三,为什么这样执行:mysql为了优化查询,采用上述执行顺序,并且每次执行关键字,都会生成一个临时表,供下个关键字执行查询时使用。
MySQL查询优化:执行顺序解析与理解
本文解析了MySQL查询语句的执行顺序,通过实例探讨了从FROM到LIMIT的执行逻辑,包括表选择、连接、过滤、分组、筛选和排序等步骤。理解这些顺序有助于优化查询性能。

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



