SQL
作为一门声明式语言,屏蔽了底层的执行过程,但是其语句的执行顺序也不再是简单的顺序执行。因此,想要熟练的阅读SQL
语句,要掌握SQL
语言的执行顺序,而其中层层嵌套的 SELECT 正是难点所在。
截至本周,同学们应该已经掌握了 SELECT 语句的所有从句:
SELECT [DISTINCT | ALL]
column-list FROM table-names
[WHERE condition]
[ORDER BY column-list]
[GROUP BY column-list]
[HAVING condition]
为了透彻地理解 SELECT 语句,有必要掌握其从句的执行顺序:
- from子句组装来自不同数据源的数据。
- where子句基于指定的条件对记录进行筛选。
- group by子句将数据划分为多个分组。
- 使用聚集函数(Aggregate function)进行计算。
- 使用having子句筛选分组。
- 计算所有的表达式。
- select 的属性。
- 使用order by对结果集进行排序。
这个顺序并不需要强记,明白大概的先后顺序即可,比较关键的有两点:
(1)SELECT
虽然出现在最前面,但是其执行的顺序几乎在最后