【Oracle】dual、sysdate、systimestamp、單行(組)函式、sql執行順序
阿新 • • 發佈:2020-09-08
dual、sysdate、systimestamp、單行(組)函式、sql書寫(執行)順序
①. 特殊關鍵字dual、sysdate、systimestamp dual:虛表,一行一列的表 1.站在資料的角度,無意義 2.作用是維護sql語句的完整性 例如: select 1000*1000 from dual; sysdate: 當前系統時間(年 月 日 時 分 秒) select sysdate from dual; systimestamp: 時間戳,也是當前系統時間 (年 月 日 時 分 秒 毫秒) select systimestamp form dual; ②. 函式-單行函式 對查詢的每條資料進行一條函式的處理 常用: to_char( 被轉化的日期,’日期格式關鍵詞’); 將日期轉化為字串 to_date( ‘被轉化的日期字串’,’日期格式關鍵詞’); 將字串轉化為日期 日期格式關鍵詞:yyyy(年),mm(月),dd(日),hh24(時,24小時制),mi(分),ss(秒),day(星期) 用法: select to_char(sysdate, ‘yyyy-mm-dd’) from dual; 查詢日期轉化為日期字串:年 月 日 select to_date(‘2001-3-23’, ‘yyyy-mm-dd’) from dual; 將日期字串轉化為日期 select to_char(to_date(‘2000-12-2’, ‘yyyy-mm-dd’), ‘day’) form dual; 將日期字串最後轉為日期:星期 ③. 函式-組函式 查詢表資料進行分組、對每組資料處理產生一條結果 常見組函式: max(欄位) 所查詢欄位的最大值 min(欄位) 所查詢欄位的最小值 avg(欄位) 所查詢欄位的平均值 sum(欄位) 所查詢欄位的總和 count(欄位 或 *) 所查詢欄位的行數 注意:組函式對null不做任何統計,自動忽略 分組: 語法:group by 欄位名1,欄位名2; 注意: ①group by 在where條件篩選之後 ②select後可以查詢分組的依據欄位,組函式的統計(其他不能查詢) 分組的過濾: 語法:group by 欄位 having 條件; 注意: ①where是在分組前對資料過濾 ②having是在分組後對資料驚醒過濾 ③如果where和having同時滿足查詢要求時,優先選擇where ④. sql語句順序 ①書寫順序:select…from…where…group by…having…order by [asc/desc] ②執行順序:from(確定表) ---> where(分組前過濾) ---> group by(分組) ---> having(分組後過濾) ---> select(查詢) ---> order by(排序)