0
点赞
收藏
分享

微信扫一扫

Sql的执行顺序

罗蓁蓁 2022-02-16 阅读 125
sql

sql并不是按照我们的书写顺序从左往右依次执行的,它是按照固定的顺序解析的,一般是按照如下顺序:
 1.from
 2.on
 3.join
 4.where
 5.group by
 6.having
 7.select
 8.distinct
 9.order by 
 10.limit

from:
第一步就是选择出from关键词后面跟的表

join on:

join是表示要关联的表,on是连接的条件。通过from和join on选择出需要执行的数据库表,产生笛卡尔积,生成合并的临时中间表Temp1,on:确定表的绑定关系,通过on产生临时中间表Temp2。

where:

where表示筛选,根据where后面的条件进行过滤,按照指定的字段的值从临时中间表Temp2中筛选需要的数据,生成临时中间表Temp3。注意:在where中不可以使用聚合函数。

group by:
group by是进行分组,对where条件过滤后的临时表Temp3按照固定的字段进行分组,产生临时中间表Temp4,表中的数据以组的形式存在。

Having:
对临时中间表Temp4进行聚合,可以为count等计数,然后产生中间表Temp5,这里可以使用select中的别名

select:
对分组聚合完的表挑选出需要查询的数据,如果是*解析为所有数据,产生中间表Temp6。

Distinct:

distinct对所有的数据进行去重,如果有min、max函数会执行字段函数计算,产生临时表Temp7。

order by:

根据Temp7进行排列,产生临时中间表Temp8,这个过程比较耗费资源。

limit:
limit对中间表Temp8进行分页,产生临时中间表Temp9,返回给客户端。

举报

相关推荐

0 条评论