abstract:標(biāo)準(zhǔn)的 SQL 的解析順序?yàn)?(1).FROM 子句, 組裝來自不同數(shù)據(jù)源的數(shù)據(jù)(2).WHERE 子句, 基于指定的條件對(duì)記錄進(jìn)行篩選(3).GROUP BY 子句, 將數(shù)據(jù)劃分為多個(gè)分組(4).使用聚合函數(shù)進(jìn)行計(jì)算(5).使用 HAVING 子句篩選分組(6).計(jì)算所有的表達(dá)式(7).使用 ORDER BY 對(duì)結(jié)果集進(jìn)行排序SQL 語句的語法順序是:● SELECT[DISTINCT]● FR
標(biāo)準(zhǔn)的 SQL 的解析順序?yàn)?
(1).FROM 子句, 組裝來自不同數(shù)據(jù)源的數(shù)據(jù)
(2).WHERE 子句, 基于指定的條件對(duì)記錄進(jìn)行篩選
(3).GROUP BY 子句, 將數(shù)據(jù)劃分為多個(gè)分組
(4).使用聚合函數(shù)進(jìn)行計(jì)算
(5).使用 HAVING 子句篩選分組
(6).計(jì)算所有的表達(dá)式
(7).使用 ORDER BY 對(duì)結(jié)果集進(jìn)行排序
SQL 語句的語法順序是:
● SELECT[DISTINCT]
● FROM
● WHERE
● GROUP BY
● HAVING
● UNION
● ORDER BY
舉例說明: 在學(xué)生成績(jī)表中 (暫記為 tb_Grade), 把 "考生姓名"內(nèi)容不為空的記錄按照 "考生姓名" 分組, 并且篩選分組結(jié)果, 選出 "總成績(jī)" 大于 600 分的.
標(biāo)準(zhǔn)順序的 SQL 語句為:
select 考生姓名, max(總成績(jī)) as max總成績(jī)
from tb_Grade
where 考生姓名 is not null
group by 考生姓名
having max(總成績(jī)) > 600
order by max總成績(jī)
在上面的示例中 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 表按 "學(xué)生姓名" 列進(jìn)行分組
(4). 計(jì)算 max() 聚集函數(shù), 按 "總成績(jī)" 求出總成績(jī)中最大的一些數(shù)值
(5). 執(zhí)行 HAVING 子句, 篩選課程的總成績(jī)大于 600 分的.
(7). 執(zhí)行 ORDER BY 子句, 把最后的結(jié)果按 "Max 成績(jī)" 進(jìn)行排序.