1、from子句組裝來自不同數據源的數據;
2、where子句基於指定的條件對記錄行進行篩選;
3、group by子句將數據劃分為多個分組;
4、使用聚集函數進行計算;
5、使用having子句篩選分組;
6、計算所有的表達式;
7、使用order by對結果集進行排序。
舉例說明: 在學生成績表中 (暫記為 tb_Grade), 把 "考生姓名"內容不為空的記錄按照 "考生姓名" 分組, 並且篩選分組結果, 選出 "總成績" 大於 600 分的.
標准順序的 SQL 語句為:
Select 考生姓名, max(總成績) as max總成績
from tb_Grade
where 考生姓名 is not null
group by 考生姓名
having max(總成績) > 600
order by max總成績
在上面的示例中 SQL 語句的執行順序如下:
(1). 首先執行 FROM 子句, 從 tb_Grade 表組裝數據源的數據
(2). 執行 WHERE 子句, 篩選 tb_Grade 表中所有數據不為 NULL 的數據
(3). 執行 GROUP BY 子句, 把 tb_Grade 表按 "學生姓名" 列進行分組
(4). 計算 max() 聚集函數, 按 "總成績" 求出總成績中最大的一些數值
(5). 執行 HAVING 子句, 篩選課程的總成績大於 600 分的.
(7). 執行 ORDER BY 子句, 把最後的結果按 "Max 成績" 進行排序.