本篇文章給大家分享的是有關(guān)什么是sql關(guān)鍵詞執(zhí)行的先后順序,小編覺得挺實(shí)用的,因此分享給大家學(xué)習(xí),希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。
創(chuàng)新互聯(lián)公司專注于寧夏企業(yè)網(wǎng)站建設(shè),響應(yīng)式網(wǎng)站開發(fā),商城網(wǎng)站定制開發(fā)。寧夏網(wǎng)站建設(shè)公司,為寧夏等地區(qū)提供建站服務(wù)。全流程按需求定制制作,專業(yè)設(shè)計(jì),全程項(xiàng)目跟蹤,創(chuàng)新互聯(lián)公司專業(yè)和態(tài)度為您提供的服務(wù)
sql關(guān)鍵詞執(zhí)行的先后順序是:首先執(zhí)行from語(yǔ)句,where語(yǔ)句,group by語(yǔ)句,having語(yǔ)句最后是order by語(yǔ)句
【推薦課程:MySQL教程】
sql關(guān)鍵詞執(zhí)行順序
例:
select m.* from(select t.*,rownum r from (select id,name,e.username,e.realname from departments d ,employees e where d.manager=e.username(+) order by id desc ) t where rownum<=? ) m where r>? select m.*(select t.*,t.rownum r from( select a,b,c,d from table1 order by a desc ) t where rownum < = ? ) m where r > ?
標(biāo)準(zhǔn)的 SQL 的解析順序?yàn)?/strong>
(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)行排序
例
在學(xué)生成績(jī)表中 (暫記為 tb_Grade), 把 "考生姓名"內(nèi)容不為空的記錄按照 "考生姓名" 分組, 并且篩選分組結(jié)果, 選出 "總成績(jī)" 大于 600 分的
SQL 語(yǔ)句為:
select 考生姓名, max(總成績(jī)) as max總成績(jī) from tb_Grade where 考生姓名 is not null group by 考生姓名 having max(總成績(jī)) > 600 order by max總成績(jī)
在上面的示例中 SQL 語(yǔ)句的執(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 分的.
(6) 執(zhí)行 ORDER BY 子句, 把最后的結(jié)果按 "Max 成績(jī)" 進(jìn)行排序.
以上就是什么是sql關(guān)鍵詞執(zhí)行的先后順序,小編相信有部分知識(shí)點(diǎn)可能是我們?nèi)粘9ぷ鲿?huì)見到或用到的。希望你能通過這篇文章學(xué)到更多知識(shí)。更多詳情敬請(qǐng)關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。