您好,登錄后才能下訂單哦!
本篇文章給大家分享的是有關什么是sql關鍵詞執行的先后順序,小編覺得挺實用的,因此分享給大家學習,希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。
sql關鍵詞執行的先后順序是:首先執行from語句,where語句,group by語句,having語句最后是order by語句
【推薦課程:MySQL教程】
sql關鍵詞執行順序
例:
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 > ?
標準的 SQL 的解析順序為
(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 分的.
(6) 執行 ORDER BY 子句, 把最后的結果按 "Max 成績" 進行排序.
以上就是什么是sql關鍵詞執行的先后順序,小編相信有部分知識點可能是我們日常工作會見到或用到的。希望你能通過這篇文章學到更多知識。更多詳情敬請關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。