SQL select语句的执行顺序
来源:互联网 发布:怎样在mac上qq群视频 编辑:程序博客网 时间:2024/06/05 23:59
最近在面试,有一个题目是让说出给定的sql语句的解析执行顺序,以及怎么优化. 感觉我回答的不理想,就查阅了一下.现在就总结一下我查阅的结果,以便日后温习:
(8) select (9)distinct (11)[top](1) from(3) [left/right outer] join(2) on(4) where(5) group by(6) with <CUBE | RollUP>(7) having(10) order by(11) limit
执行顺序:
1 执行from子句,两张表实现一个笛卡尔积,得到一个虚拟表T1;
2 执行on子句,根据on的条件,删除T1表中的数据,得到虚拟表T2;
3 如果是外连接,则将根据on条件删除的表数据添加到left/right表,得到虚拟表T3; 如果是多张表连接,则重复2&3的步骤;
4 执行where子句,根据where条件删除T3中的数据,得到虚拟表T4;
5 如果有group子句,得到虚拟表vt5;如果应用了group by,那么后面的所有步骤都只能得到的vt5的列或者是聚合函数(count/sum/avg等),原因在于最终的结果集中只为每个组包含一行;这一点得牢记;
6 应用cube或者rollup选项,为vt5生成超组,得到虚拟表T6;
7 根据having子句条件,删除数据,得到虚拟表T7;
8 执行select子句,从T7中选出要查询的列,得到虚拟表T8;
9 执行distinct子句,从T8中删除重复数据,得到T9;(与groupby子句一起用要注意,不要是同一列)
10 执行order by子句,得到一个游标,这是唯一一个可以使用select子句字段别名的子句;
11 执行分页语句,得到虚拟表T10,作为数据集返回;
0 0
- SQL Select语句完整的执行顺序:
- SQL select 语句的简单执行顺序
- SQL Select语句完整的执行顺序
- SQL Select语句完整的执行顺序:
- SQL Select语句完整的执行顺序
- SQL Select语句完整的执行顺序
- SQL Select语句的执行顺序
- SQL中SELECT语句的执行顺序
- SQL中SELECT语句的执行顺序
- SQL 中 SELECT 语句的执行顺序
- SQL Select语句完整的执行顺序
- SQL Select语句完整的执行顺序
- SQL中SELECT语句的执行顺序
- SQL SELECT语句完整的执行顺序
- SQL Select语句完整的执行顺序
- SQL Select语句完整的执行顺序:
- SQL Select语句完整的执行顺序
- sql select语句的执行顺序
- Divide the Sequence
- python turtle模块 画火树银花
- 关于对象不能直接访问私有成员的超级大误区~
- HDU 1175 连连看(bfs+dfs 水过)
- 棋盘覆盖
- SQL select语句的执行顺序
- Cookie自动登录小记
- ssh 分页以及 分页样式
- JQuery常用选择器 事件 方法 样式属性操作
- Android期末复习(2)
- (13.1.3)PMBOK之三:十大知识领域与具体过程
- 对golang结构体的方法集的理解
- 二叉树4:二叉树的序列化和反序列化
- 2016年中国智慧杯——助学金大赛