標籤:就是 左串連 結果 鏡像 www. 運算子 比較子 left join 匹配
一、內串連
(inner join (可簡寫為join))
內串連查詢操作列出與串連條件匹配的資料行,它使用比較子比較被串連列的列值。
1、等值串連:在串連條件中使用等號(=)運算子比較被串連列的列值,其查詢結果中列出被串連表中的所有列,包括其中的重複屬性。 (區別於自然串連)
SELECT * FROM EMP,DEPT WHERE EMP.DEPTNO = DEPT.DEPTNO; SELECT DEPT.DNAME,EMP.ENAME FROM EMP,DEPT WHERE EMP.DEPTNO = DEPT.DEPTNO;
2、不等串連: 在串連條件使用除等於運算子以外的其它比較子比較被串連的 列的列值。這些運算子包括>、>=、<=、<、!>、!<和<>。
二、外連結
外串連,返回到查詢結果集合中的不僅包含符合串連條件的行,而且還包括左表(左外串連或左串連))、右表(右外串連或右串連)或兩個邊接表(全外串連)中的所有資料行。
1.left join(左聯結)等價於(left outer join) 返回包括左表中的所有記錄和右表中連接欄位相等的記錄;
2.right join(右聯結)等價於(right outer join)返回包括右表中的所有記錄和左表中連接欄位相等的記錄;
3. full join (全串連)等價於(full outer join)查詢結果等於左外串連和右外串連的和
三、交叉連結(笛卡爾積)
交叉串連不帶ON子句,它返回被串連的兩個表所有資料行的笛卡爾積,返回到 結果集合中的資料行數等於第一個表中符合查詢條件的資料行數乘以第二個表中符合查 詢條件的資料行數。
SELECT S.*, T.* FROM STUDENT S CROSS JOIN TEACHER T ;
等價於:
SELECT S.*, T.* FROM STUDENT S , TEACHER T ;
四、自然串連(natural join)
自然串連是在廣義笛卡爾積R×S中選出同名屬性上符合相等條件元組,再進行投影,去掉重複的同名屬性,組成新的關係。即自然串連是在兩張表中尋找那些資料類型和列名都相同的欄位,然後自動地將他們串連起來,並返回所有符合條件按的結果。
雖然natural join(自然串連)實際上的用的比較少,但實際上這個串連是非常有用的,若能經常使用一下,實際上是非常方便的。
自然串連是在兩張表中尋找那些資料類型和列名都相同的欄位,然後自動地將他們串連起來,並返回所有符合條件按的結果。
來看一下自然串連的例子。
Select emp.ename,dept.dname
From emp natural join dept;
這裡我們並沒有指定串連的條件,實際上oracle為我們自作主張的將,emp中的deptno和dept中的deptno做了串連。
也就是實際上相當於
Select emp.ename,dept.dname
From emp join dept on emp.deptno = dept.deptno;
因為這兩張表的這兩個欄位deptno的類型個名稱完全相同。所以使用natural join時被自然的串連在一起了。
另外:
1.如果做自然串連的兩個表的有多個欄位都滿足有相同名稱個類型,那麼他們會被作為自然串連的條件。
2.如果自然串連的兩個表僅是欄位名稱相同,但資料類型不同,那麼將會返回一個錯誤。
3.由於oracle中可以進行這種非常簡單的natural join,我們在設計表時,應該盡量在不同表中具有相同含義的欄位使用相同的名字和資料類型。以方便以後使用natural join
五、自串連
串連的表是同一張表,使用自串連可以將自身表的一個鏡像當作另一個表來對待,從而能夠得到一些特殊的資料。
oracle 多表串連查詢