sql中语句执行的优先级顺序是什么

介绍

这篇文章给大家分享的是有关sql中语句执行的优先级顺序是什么的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。

<强> sql语句的执行顺序

MySQL的语句一共分为11步,如下图所标注的那样,最先执行的总是来自操作,最后执行的是限制操作。其中每一个操作都会产生一张虚拟的表,这个虚拟的表作为一个处理的输入,只是这些虚拟的表对用户来说是透明的,但是只有最后一个虚拟的表才会被作为结果返回。如果没有在语句中指定某一个子句,那么将会跳过相应的步骤。

 sql中语句执行的优先级顺序是什么

<强>下面我们来具体分析一下查询处理的每一个阶段

形式:对从的左边的表和右边的表计算笛卡尔积。产生虚表VT1

:对虚表VT1进行上筛选,只有那些符合& lt; join-condition>的行才会被记录在虚表VT2中。

加入:如果指定了外连接(比如左连接、右连接),那么保留表中未匹配的行就会作为外部行添加到虚拟表VT2中,产生虚拟表VT3,地毯从子句中包含两个以上的表的话,那么就会对上一个加入连接产生的结果VT3和下一个表重复执行步骤1 ~ 3这三个步骤,一直到处理完所有的表为止

地点:对虚拟表VT3进行哪条件过滤。只有符合& lt; where-condition>的记录才会被插入到虚拟表VT4中。

GROUP BY:根据GROUP BY子句中的列,对VT4中的记录进行分组操作,产生VT5。

立方体|汇总:对表VT5进行立方体或者汇总操作,产生表VT6。

有:对虚拟表VT6应用有过滤,只有符合& lt; having-condition>的记录才会被插入到虚拟表VT7中。

选择:执行选择操作,选择指定的列,插入到虚拟表VT8中。

截然不同:对VT8中的记录进行去重。产生虚拟表VT9。

命令:将虚拟表VT9中的记录按照& lt; order_by_list>进行排序操作,产生虚拟表VT10。

限制:取出指定行的记录,产生虚拟表VT11,并将结果返回。

<强>写的顺序:选择…从…在那里……group by……拥有……order by . .限制(偏移量,)

(行)

<强>执行顺序:从…在那里……group by……有....选择……order by……限制

感谢各位的阅读!关于“sql中语句执行的优先级顺序是什么”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!

sql中语句执行的优先级顺序是什么