select查询语句执行顺序

Posted 张冲andy

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了select查询语句执行顺序相关的知识,希望对你有一定的参考价值。

查询中用到的关键词主要包含六个,并且他们的顺序依次为
select--from--where--group by--having--order by
其中select和from是必须的,其他关键词是可选的,这六个关键词的执行顺序
与sql语句的书写顺序并不是一样的,而是按照下面的顺序来执行

from--where--select--group by--having--order by,

from:需要从哪个数据表检索数据
where:过滤表中数据的条件 , rownum分配给每个输出行并增1
select:查看结果集中的哪个列,或列的计算结果
group by:如何将上面过滤出的数据分组
having:对上面已经分组的数据进行过滤的条件
order by :按照什么样的顺序来查看返回的数据
 
补充,详细顺序。  
rownum是一个伪列(不是真实存在的列,表中并不真实存在),是数据库从数据文件或缓冲区中读取数据的顺序。

(1)  FROM <left_table>
(2) ON <join_condition>
(3) <join_type> JOIN <right_table>
(4) WHERE <where_condition>
(5) GROUP BY <group_by_list>
(6) WITH {CUBE | ROLLUP}
(7) HAVING <having_condition>
(8)SELECT 
(9) DISTINCT
(10) ORDER BY <order_by_list>
(11) <select_list>

以上是关于select查询语句执行顺序的主要内容,如果未能解决你的问题,请参考以下文章

MySQL的逻辑查询语句的执行顺序

mysql五补充部分:SQL逻辑查询语句执行顺序

查询语句中select from where group by having order by的执行顺序

SQL查询语句执行顺序

MySQL基本查询 SELECT的执行顺序(DQL语句)

Hive SQL语句执行顺序