登录
首页 >  数据库 >  MySQL

sql 语句的执行顺序

来源:SegmentFault

时间:2023-01-21 08:41:12 469浏览 收藏

亲爱的编程学习爱好者,如果你点开了这篇文章,说明你对《sql 语句的执行顺序》很感兴趣。本篇文章就来给大家详细解析一下,主要介绍一下MySQL,希望所有认真读完的童鞋们,都有实质性的提高。

1.FROM:对FROM子句中前两个表执行笛卡尔积 生成虚拟表VT1
2.ON:对VT1表应用ON筛选器 只有满足 为真的行才被插入VT2
3.OUTER(JOIN):如果指定了OUTER JOIN 保留表(preserved table)中未找到的行将行作为外部行添加到VT2 生成T3
如果FROM包含两个以上表 则对上一个联结生成的结果表和下一个表重复执行步骤1和步骤3 直接结束
4.WHERE:对VT3应用WHERE筛选器 只有使 为TRUE的行才被插入VT4
5.GROUP BY:按GROUP BY子句中的列列表 对VT4中的行分组 生成VT5
6.CUBE|ROLLUP:把超组(Supergroups)插入VT6 生成VT6
7.HAVING:对VT6应用HAVING筛选器 只有使 为TRUE的组才插入VT7
8.SELECT:处理SELECT列表 产生VT8
9.DISTINCT:将重复的行从VT8中去除 产生VT9
10.ORDER BY:将VT9的行按ORDER BY子句中的列列表排序 生成一个游标 VC10
11.TOP:从VC10的开始处选择指定数量或比例的行 生成VT11 并返回调用者

(8) SELECT (9) DISTINCT (11)
(1) FROM
(3) JOIN
(2) ON
(4) WHERE
(5) GROUP BY
(6) WITH {CUBE | ROLLUP}
(7) HAVING
(10) ORDER BY

理论要掌握,实操不能落!以上关于《sql 语句的执行顺序》的详细介绍,大家都掌握了吧!如果想要继续提升自己的能力,那么就来关注golang学习网公众号吧!

声明:本文转载于:SegmentFault 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>
评论列表