雖然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
最後我們在前面舉的例子都得到以下的結果:
SQL> Select emp.ename,dept.dname
2 From emp natural join dept;
ENAME DNAME
——————– —————-
SMITH RESEARCH
ALLEN SALES
WARD SALES
JONES RESEARCH
MARTIN SALES
BLAKE SALES
CLARK ACCOUNTING
SCOTT RESEARCH
KING ACCOUNTING
TURNER SALES
ADAMS RESEARCH
JAMES SALES
FORD RESEARCH
MILLER ACCOUNTING