1. 程式人生 > >關係資料操作

關係資料操作

實現在一個查詢語句中顯示多張表的資料,這就是多表資料記錄連線查詢,簡稱為連線查詢。

連線操作是關係資料操作中專門用於資料庫操作的關係運算。

1、並(UNION)

“並”是指把具有相同欄位數目和欄位型別的表合併到一起。

合併查詢資料記錄語法形式:

select field1,field2,...,fieldn from table_name1

union|union all

select field1,field2,...,fieldn from table_name2

union|union all

select field1,field2,...,fieldn from table_name3

...

關鍵字union會把查詢結果集直接合並在一起,同時將會去掉重複資料記錄。關鍵字union all會直接把查詢結果集放一起。

2、笛卡爾積(CARTESIAN PRODUCT)

笛卡爾積是沒有連線條件表關係返回的結果。

3、內連線(INNER JOIN)

在表關係的笛卡爾積資料記錄中,保留表關係中所有匹配的資料記錄,捨棄不匹配的資料記錄。按匹配的條件可以分成自然連線、等值連線和不等連線。

實現內連線查詢的兩種方式:

  • 在from子句中利用逗號區分多個表,在where子句中通過邏輯表示式來實現匹配條件,從而實現表的連線。
  • ANSI連線語法形式,在from子句中使用join...on關鍵字,而連線條件寫在關鍵字on子句中

INNER JOIN ON語法形式:

select field1,field2,...,fieldn from join_tablename1 inner join join_tablename2 [inner join join_tablename] on join_condition;

自然連線(NATURE JOIN)

根據表關係中相同名稱的欄位自動進行記錄匹配,然後去掉重複的欄位

等值連線

等值連線是在表關係的笛卡爾積中,選擇匹配欄位值相等的資料記錄。

不等連線

不等連線是在表關係的笛卡爾積中,選擇所匹配欄位值不相等的資料記錄。

4、外連線(OUTER JOIN)

外連線是指在表關係的笛卡爾積中,不僅保留所匹配的資料記錄,而且還會保留部分不匹配的資料記錄。

語法形式:

select field1,field2,...,fieldn from join_tablename1 left|right [outer] join join_tablename2 on join_condition;

左外連線(LEFT OUTER JOIN)

在外連線是指在表關係的笛卡爾積中,除了選擇相匹配的資料記錄,還包含關聯左邊表中不匹配的資料記錄。

右外連線(RIGHT OUTER JOIN)

右外連線是指在表關係的笛卡爾積中,除了選擇相匹配的資料記錄,還包含關聯右邊表中不匹配的資料記錄。