雖然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