理解 sql 語句的執行順序對我們優化 sql 有很大的幫助,那麼 sql 語句的執行順序是怎樣的呢,以一條簡單的的語句做分析:

① 先執行 from 子句,明確數據的來源,從哪個表或哪個視圖來查詢
② 接著執行 where 子句,根據列出來的條件篩選數據
③ 然後執行 group by 子句,對數據進行分組
④ 再執行 having 子句,對分組後的數據進行篩選
⑤ 之後執行 select 子句,選擇展示哪些數據列
⑥ 最後執行 order by 子句,對應最終的結果進行排序
如何 sql 語句中有表連接,那麼會先執行連接的條件 on 子句再執行 join 子句。並且這部分的執行是在上述步驟的 ① 和 ② 之間就執行的。
這個步驟跟其他編程語言從上往下執行的順序不太一樣,但也是合乎情理的,相信也在廣大讀者的預料之中。雖然我們可能不知道資料庫的底層和原理,但是 sql 寫得多了,也就會發現這樣的規律,比如說別名的運用。
如下,給表 emp 取個別名 a,分別在 select 子句、where 子句、group by 子句中引用,都能正確執行。說明 from 子句的執行在這三個子句之前。

再如下:在 select 子句中給 count(1) 起了個別名為 num,在 order by 子句中引用這個別名,執行正確。在 where 子句中引用這個別名,則執行錯誤。說明這三個子句的執行順序為 where > select > order by

原創文章,作者:投稿專員,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/218765.html