關係資料操作
實現在一個查詢語句中顯示多張表的資料,這就是多表資料記錄連線查詢,簡稱為連線查詢。
連線操作是關係資料操作中專門用於資料庫操作的關係運算。
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)
右外連線是指在表關係的笛卡爾積中,除了選擇相匹配的資料記錄,還包含關聯右邊表中不匹配的資料記錄。