在執行SQL語句的時候,執行順序和我們的語法順序是一樣的嗎?有什麼不同呢?

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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章