1、當在select語句中,同時使用where、group by和having子句時,它們的作用和執行順序如下:
(1)where用于篩選由from指定的資料對象
(2)group by用于對where的結果進行分組
(3)having用于對group by分組後的資料進行過濾
2、count(*)與count(columnName|columnIndex)的差別:
count(*)會統計表中的null計算在内,而count(columnName|columnIndex)會忽略對應字段的null記錄。
3、以join關鍵字指定的連接配接主要有四種:inner join、left outer join、right outer join和 full outer join。
(1)inner join是内連接配接,是系統預設的連接配接方式,可以省略inner,它會把所有滿足條件的記錄列出來。
(2)left outer join是左外連接配接,其中outer可以省略,它除了列出所有滿足條件的記錄外,還包括左表的所有行。
(3)right outer join是右外連接配接,其中outer可以省略,它除了列出所有滿足條件的記錄外,還包括右表的所有行。
(4)full outer join是全外連接配接,其中outer可以省略,它除了列出所有滿足條件的記錄外,還包括左表和右表的所有行。
4、select中的union子句
使用union子句可以将兩個或兩個以上的查詢結果合并成一個結果集。其文法格式如下:
(query expression) union [all] (query expression) [union [all] (query expression)]
--使用關鍵字all表示合并的結果集中包括所有行,不去除重複行,而不使用all關鍵字則會去除重複行。
使用union的基本規則是:
(1)所有查詢中的列數和列的順序必須相同
(2)對應列的資料類型必須相容