好像自已在書寫 SQL 語句時由于不清楚各個關鍵字的執(zhí)行順序, 往往組織的 SQL 語句缺少很好的邏輯, 憑感覺 "拼湊" ( 不好意思, 如果您的 SQL 語句也經(jīng)常 "拼湊", 那您是不是得好好反省一下呢?, 呵呵). 確實是爽了自己, 可苦了機器, 服務器還需要在我們的雜亂無章的 SQL 語句中尋找它下一句需要執(zhí)行的關鍵字在哪里. 效率嘛, 由于我們的感覺神經(jīng)對秒以下的變化實在不敏感, 暫且就認為自已寫的 SQL 順序無關緊要, "反正沒什么變化!", 呵呵.其實服務器對每句 SQL 解析時間都會有詳細記錄的, 大家可以看一下自已按習慣寫的 SQL 和按標準順序寫的SQL解析時間差別有多大.
因此, 考試#大建議大家在平時工作中 SQL 語句按標準順序寫, 一是專業(yè), 二是實用, 呵呵, 不過覺得主要的是心里感覺舒服.
標準的 SQL 的解析順序為:
(1).FROM 子句, 組裝來自不同數(shù)據(jù)源的數(shù)據(jù)
(2).WHERE 子句, 基于指定的條件對記錄進行篩選
(3).GROUP BY 子句, 將數(shù)據(jù)劃分為多個分組
(4).使用聚合函數(shù)進行計算
(5).使用 HAVING 子句篩選分組
(6).計算所有的表達式
(7).使用 ORDER BY 對結果集進行排序
舉例說明: 在學生成績表中 (暫記為 tb_Grade), 把 "考生姓名"內(nèi)容不為空的記錄按照 "考生姓名" 分組, 并且篩選分組結果, 選出 "總成績" 大于 600 分的.
標準順序的 SQL 語句為:
select 考生姓名, max(總成績) as max總成績
from tb_Grade
where 考生姓名 is not null
group by 考生姓名
having max(總成績) > 600
order by max總成績
在上面的示例中 SQL 語句的執(zhí)行順序如下:
(1). 首先執(zhí)行 FROM 子句, 從 tb_Grade 表組裝數(shù)據(jù)源的數(shù)據(jù)
(2). 執(zhí)行 WHERE 子句, 篩選 tb_Grade 表中所有數(shù)據(jù)不為 NULL 的數(shù)據(jù)
(3). 執(zhí)行 GROUP BY 子句, 把 tb_Grade 表按 "學生姓名" 列進行分組
(4). 計算 max() 聚集函數(shù), 按 "總成績" 求出總成績中大的一些數(shù)值
(5). 執(zhí)行 HAVING 子句, 篩選課程的總成績大于 600 分的.
(7). 執(zhí)行 ORDER BY 子句, 把后的結果按 "Max 成績" 進行排序.
因此, 考試#大建議大家在平時工作中 SQL 語句按標準順序寫, 一是專業(yè), 二是實用, 呵呵, 不過覺得主要的是心里感覺舒服.
標準的 SQL 的解析順序為:
(1).FROM 子句, 組裝來自不同數(shù)據(jù)源的數(shù)據(jù)
(2).WHERE 子句, 基于指定的條件對記錄進行篩選
(3).GROUP BY 子句, 將數(shù)據(jù)劃分為多個分組
(4).使用聚合函數(shù)進行計算
(5).使用 HAVING 子句篩選分組
(6).計算所有的表達式
(7).使用 ORDER BY 對結果集進行排序
舉例說明: 在學生成績表中 (暫記為 tb_Grade), 把 "考生姓名"內(nèi)容不為空的記錄按照 "考生姓名" 分組, 并且篩選分組結果, 選出 "總成績" 大于 600 分的.
標準順序的 SQL 語句為:
select 考生姓名, max(總成績) as max總成績
from tb_Grade
where 考生姓名 is not null
group by 考生姓名
having max(總成績) > 600
order by max總成績
在上面的示例中 SQL 語句的執(zhí)行順序如下:
(1). 首先執(zhí)行 FROM 子句, 從 tb_Grade 表組裝數(shù)據(jù)源的數(shù)據(jù)
(2). 執(zhí)行 WHERE 子句, 篩選 tb_Grade 表中所有數(shù)據(jù)不為 NULL 的數(shù)據(jù)
(3). 執(zhí)行 GROUP BY 子句, 把 tb_Grade 表按 "學生姓名" 列進行分組
(4). 計算 max() 聚集函數(shù), 按 "總成績" 求出總成績中大的一些數(shù)值
(5). 執(zhí)行 HAVING 子句, 篩選課程的總成績大于 600 分的.
(7). 執(zhí)行 ORDER BY 子句, 把后的結果按 "Max 成績" 進行排序.

