Thursday, July 25, 2013

sql查询语句的执行顺序

~/projects/sql/documents/query-execution-order.sql.html

要写好sql查询语句,我们需要非常清楚sql查询语句的各分支的执行顺序, 个分支的执行顺序如下:

1 SELECT ...              #7
2 FROM ... [JOIN ...      #1
3 ON ...]                 #2
4 WHERE ...               #3
5 GROUP BY ... [          #4
6 HAVING ]                #5
7 ORDER BY [DESC]         #6

我觉得有必要说明一下为什么要去理解sql语句的执行顺序。对于没有学过编程语言的人来说, 最容易看懂的是sql语句,因为sql是一种描述性语句,跟生活用语比较接近, 而跟我们学得主流编程语言--- C/C++,Java,Python 的指令式结构语言有很大区别。sql语句提交给数据库管理系统时,最终会转化成上述指令式结构, 把一个sql语句分成好几个指令序列流,按顺序依次执行。

上图中,sql查询的所有分支,#1, #7是必须的,其他是可选的。


版权声明
本博客所有的原创文章,作者皆保留版权。转载必须包含本声明,保持本文完整,并以超链接形式注明作者Saturn和本文原始地址:
https://ndtm-idea.blogspot.com/2013/07/projectssqldocumentsquery-execution.html

0 comments:

Post a Comment