SELECT語句的執行順序



SELECT語句的語法如下:


SELECT [DISTINCT] * | 分組字段1 [別名1] [,分組字段2 [別名2]...] | 統計函數
FROM 表名稱[別名][,表名稱2 [別名2] ...]
[LEFT JOIN 表名稱 ON 連接條件]
[WHERE 條件]
[GROUP BY 分組字段1 [,分組字段2 ...]]
[HAVING 分組後的過濾條件(可以使用分組函數)]
[ORDER BY 排序字段 ASC|DESC [,排序字段2 ASC|DESC ...]]


執行的先後順序:
1. FROM子句(包含JOIN子句),產生全部數據。
2. WHERE條件,過濾全部數據產生部分數據。
3. GROUP BY子句,對2中的部分數據進行分組處理,產生分組後的數據。
4. HAVING子句,對分組後的數據再次過濾,產生過濾後的分組數據。注:由於是在分組後執行HAVING子句,所以此處可以使用分組函數。
5. SELECT語句,對4中產生的數據,提取統計信息
6. ORDER BY 子句,對5中產生的數據排序。
發佈了29 篇原創文章 · 獲贊 6 · 訪問量 4萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章