select执行顺序
2022-03-03 15:47:35 0 举报
SQL的select查询语句执行顺序
作者其他创作
大纲/内容
group by
5
where
1
7
10
from
1.将重复的行从VT8中移除;2.产生虚拟表 VT9
1.从VC10的开始处选择指定数量行;2.生成虚拟表VT11
6
1.利用函数计算从列中得到的值;2.AVG、COUNT、MAX、MIN、SUM、FIRST、LAST等
1.对select的结果进行合并;2.默认去掉重复的记录;
1.将VT4中每行唯一的值组合成一组;2.生成虚拟表VT5;3.可以使用聚合函数(count、sum、avg等);4.在这之后的语句,都可以使用别名
union
order by......asc|desc
WITH CUBE 或 ROLLUP
1.对VT5应用ROLLUP或CUBE选项;2.生成VT6;3.CUBE显示所选列中所有值的组合;4.ROLLUP显示所选列中某一层次结构的聚合
1.执行顺序从后往前、从右到左;2.最后的表为驱动表,“小表驱动大表”;3.执行笛卡尔积;4.生成虚拟表VT1;
11
1.对VT3应用WHERE筛选器;2.不能在WHERE中使用聚合函数;3.不能对列使用别名;4.生成VT4;
distinct
9
on
2
join
4
1.生成虚拟表 VT3;2.LEFT OUTER JOIN把左表记为保留表;3.RIGHT OUTER JOIN把右表记为保留表4.FULL OUTER JOIN把左右表都作为保留表
13
select执行顺序
select
1.将VT9中的行按ORDER BY中的列/列表排序;2.生成游标VC10;3.这里不能使用表达式;4.按从左到右的顺序执行;5.该语句很消耗资源;
limit
3
having
12
1.将SELECT指明的列从VT7中筛选出来;2.生成VT8;
1.对VT6使用HAVING筛选器;2.生成VT7;3.可以使用聚合函数,过滤聚合值;4.可以配合GROUP BY子句
聚合函数
8
1.对虚拟表VT1 应用ON筛选器;2.生成虚拟表 VT2
0 条评论
下一页