天天看點

Oracle natural join(自然連接配接)

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