天天看點

oracle——06表查詢中需要注意的一些問題

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)對應列的資料類型必須相容