SELECT語句定義
一個完成的SELECT語句包含可選的幾個子句。SELECT語句的定義如下:
<SELECT clause> [<FROM clause>] [<WHERE clause>] [<GROUP BY clause>] [<HAVING clause>] [<ORDER BY clause>] [<LIMIT clause>]
SELECT子句是必選的,其它子句如WHERE子句、GROUP BY子句等是可選的。
一個SELECT語句中,子句的順序是固定的。例如GROUP BY子句不會位於WHERE子句的前面。
SELECT語句執行順序
SELECT語句中子句的執行順序與SELECT語句中子句的輸入順序是不一樣的,所以並不是從SELECT子句開始執行的,而是按照下面的順序執行:
開始->FROM子句->WHERE子句->GROUP BY子句->HAVING子句->ORDER BY子句->SELECT子句->LIMIT子句->最終結果
每個子句執行後都會產生一個中間結果,供接下來的子句使用,如果不存在某個子句,就跳過