SQL 执行顺序
2016-03-29 15:35
239 查看
SQL 是一种声明式语言,与其他语言相比它的最大特点是执行顺序-并非按照语法顺序来执行。因此很多程序猿看到SQL就头疼,我之前也是这样,后来看到一篇文章后豁然开朗-地址。
理解了SQL的执行顺序无疑对我们学习SQL有很大的帮助。标准的SQL的解析顺序为:
FROM(组装来自不同数据源的数据)->WHERE(对数据源进行指定条件的筛选)->GROUP BY(对数据源进行分组)->聚合函数进行计算->HAVING(对分组结果进行筛选)->计算所有表达式->ORDER BY(对结果进行排序);每个步骤都会产生一个虚拟表,该虚拟表用于下一个步骤的输入。
下面一个比较复杂的SQL语法表示,通过它来进一步理解SQL的执行顺序 。SQL关键字前面的数字大小表示顺序,由先到后。
最后,希望对大家有帮助。ps:好久没写博客了,怪自己太懒了,自己要坚持下去
请关注我的github:https://github.com/khadron
理解了SQL的执行顺序无疑对我们学习SQL有很大的帮助。标准的SQL的解析顺序为:
FROM(组装来自不同数据源的数据)->WHERE(对数据源进行指定条件的筛选)->GROUP BY(对数据源进行分组)->聚合函数进行计算->HAVING(对分组结果进行筛选)->计算所有表达式->ORDER BY(对结果进行排序);每个步骤都会产生一个虚拟表,该虚拟表用于下一个步骤的输入。
下面一个比较复杂的SQL语法表示,通过它来进一步理解SQL的执行顺序 。SQL关键字前面的数字大小表示顺序,由先到后。
(08)SELECT (09)DISTINCT (11)<Top num> <column name> (01)FROM [Left_table] (03)<join_type> JOIN [Right_Table] (02)ON join_condition> (04)WHERE <where_condition> (05)GROUP BY <group_by_list> (06)WITH <CUBE |ROLLUP> (07)HAVING <having_condition> (10)ORDER BY <order_by_column_list>
上面的sql语句执行顺序如下:
最后,希望对大家有帮助。ps:好久没写博客了,怪自己太懒了,自己要坚持下去
请关注我的github:https://github.com/khadron
相关文章推荐
- SQL 使一个字段自加1
- 修改Capfile,在正式环境不再使用migration修改数据库
- 修改Capfile,在正式环境不再使用migration修改数据库
- Redis与Memcached的区别(一)
- memcache图形化管理工具MemAdmin
- T-SQL 基本语法
- sql server 2008 往创建好的数据表插入数据
- 使用memcache来保存session
- php操作memcache缓存
- 开启php的memcache扩展
- memcache介绍
- ORACLE ADF11g: AM 调用存储过程
- 将HDFS数据通过Sqoop导入MySQL
- 数据库锁:各种锁
- mysql分页百万级数据的优化方案
- mysql转换时间格式分组
- Mysql 的日期类型:DATETIME和TIMESTAMP
- 【高效server实践】--redis性能分析
- MySQL mysqldump备份脚本
- oracle 11g 密码过期问题