DQL执行顺序

DQL执行顺序

理解SQL优化原理 ,首先要搞清楚SQL执行顺序:

SELECT语句 - 语法顺序:

1. SELECT #7
2. DISTINCT <select_list>#8
3. FROM <left_table>  #1
4. <join_type> JOIN <right_table>#3 #1
5. ON <join_condition>#2
6. WHERE <where_condition>#4
7. GROUP BY <group_by_list>#5
8. HAVING <having_condition>#6
9. ORDER BY <order_by_condition>#9
10.LIMIT <limit_number>#10

SELECT语句 - 执行顺序:

FROM
<表名> # 选取表,将多个表数据通过笛卡尔积变成一个表。
ON
<筛选条件> # 对笛卡尔积的虚表进行筛选
JOIN <join, left join, right join...>
<join表> # 指定join,用于添加数据到on之后的虚表中,例如left join会将左表的剩余数据添加到虚表中
WHERE
<where条件> # 对上述虚表进行筛选
GROUP BY
<分组条件> # 分组
<SUM()等聚合函数> # 用于having子句进行判断,在书写上这类聚合函数是写在having判断里面的
HAVING
<分组筛选> # 对分组后的结果进行聚合筛选
SELECT
<返回数据列表> # 返回的单列必须在group by子句中,聚合函数除外
DISTINCT
# 数据除重
ORDER BY
<排序条件> # 排序
LIMIT
<行数限制>

种下数据库 文章被收录于专栏

MySQL相关的学习笔记,让我们一起来种下MySQL这棵参天大树吧!

全部评论

相关推荐

头像
不愿透露姓名的神秘牛友
03-13 10:56
点赞 评论 收藏
转发
1 1 评论
分享
牛客网
牛客企业服务