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關鍵字執行先後順序是什麼的詳細內容。更多資訊請關注PHP中文網其他相關文章!