SQL 语句的执行顺序跟其语句的语法顺序并不一致
一般而言

SQL 语句的语法顺序是:

SELECT[DISTINCT]

FROM

WHERE

GROUP BY

HAVING

UNION

ORDER BY

其执行顺序为:

FROM

WHERE

GROUP BY

HAVING

SELECT

DISTINCT

UNION

ORDER BY

需要注意的是:

1、 FROM 才是 SQL 语句执行的第一步。数据库在执行 SQL 语句的第一步是将数据从硬盘加载到数据缓冲区中,以便对这些数据进行操作。

2、SELECT 是在大部分语句执行了之后才执行的,严格的说是在 FROM 和 GROUP BY 之后执行的。这就是你不能在 WHERE 中使用在 SELECT 中设定别名的字段作为判断条件的原因。
3、并非所有SQL都按照上述的顺序进行。

那么我们来看一道面试真题吧:

SQL语句执行的顺序是

A.
SELECT<br>2.JOIN ON<br>3.FROM<br>4.WHERE<br>5.GROUP BY<br>6.HAVING<br>7.ORDER BY
B.
SELECT<br>2.FROM<br>3.JOIN ON<br>4.WHERE<br>5.GROUP BY<br>6.HAVING<br>7.ORDER BY
C.
FROM<br>2.JOIN ON<br>3.WHERE<br>4.GROUP BY<br>5.HAVING<br>6.SELECT<br>7.ORDER BY
D.
JOIN ON<br>2.WHERE<br>3.GROUP BY<br>4.HAVING<br>5.SELECT<br>6.FROM<br>7.ORDER BY

解析:
这题说的是执行顺序,而不是语句顺序,一定要注意区分~~,from是最早的,select在having后面,order 不要在最后 选C