在資料庫查詢中,我們常常會用到的表連線查詢,而我自己在工作中也是時常用這些表連線查詢。而就在剛剛我卻還沒有搞清楚資料庫表連線到底有哪幾種,
這幾種表連線查詢方式又有什麼區別,實屬慚愧!藉以此文以謹記。
資料庫表連線查詢分三種:內連線、外連線、交叉連線
那下面我們就來分別說說這三種連線。
內連線又分為:等值連線、不等連線、自然連線
1、等值連線
我們在連線多表查詢時,連線條件中使用等號(=)運算子,其查詢結果中列出被連線表中的所有列,包括其中的重複列。
2、不等連線
我們在連線多表查詢時,在連線條件中使用除等號(=)之外運算子(>、<、<>、>=、<=、!>和!<)
3、自然連線
我們在連線多表查詢時,連線條件和等值連線相同,但是會刪除連線表中的重複列。
外連線分為:左連線(left join)或左外連線(left outer join)、右連線(right join)或右外連線(right outer join)、全連線(full join)或全外連線(full outer join)。
1、左連線
我們在連線多表查詢時,返回左表中的所有行,如果左表中行在右表中沒有匹配行,則結果中右表中的列返回空值。
2、右連線
我們在連線多表查詢時,恰與左連線相反,返回右表中的所有行,如果右表中行在左表中沒有匹配行,則結果中左表中的列返回空值。
3、全連線
我們在連線多表查詢時,返回左表和右表中的所有行。當某行在另一表中沒有匹配行,則另一表中的列返回空值。
交叉連線:也稱迪卡爾積
不帶where條件子句,它將會返回被連線的兩個表的笛卡爾積,返回結果的行數等於兩個錶行數的乘積,如果帶where,返回或顯示的是匹配的行數。
注:cross
join
後加條件只能用
where
,不能用
on
內連線外連線
內連線 內連線也叫連線,是最早的一種連線,最早被稱為普通連線或自然連線。內連線是從結果中刪除其他被連線表中沒有匹配行的所有行,所以內連線可能會丟失資訊。內連線的語法 select fieldlist from table1 inner join table2 on table1.column tab...
SQL 內連線,外連線(左外連線 右外連線)
參考整理筆記 關鍵字 inner join on 語句 select from a table a inner join b table bon a.a id b.b id 執行結果 說明 組合兩個表中的記錄,返回關聯字段相符的記錄,也就是返回兩個表的交集 陰影 部分。關鍵字 left join o...
Oracle外連線,左外連線,右外連線,內連線簡析
內連線即普通等值連線 select e.ename,e.job,e.sal,d.dname from emp e inner join dept d on e.deptno d.deptno where e.sal 2000 select e.ename e.job,e.sal d.dname fr...