oracle natural join

sky850623發表於2014-09-27

自然連線是在兩張表中尋找那些資料型別和列名都相同的欄位,然後自動地將他們連線起來,並返回所有符合條件按的結果。

來看一下自然連線的例子。

SQL> select ename,dname 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

ENAME      DNAME
---------- --------------
JAMES      SALES
FORD       RESEARCH
MILLER     ACCOUNTING
已選擇14行。


這裡我們並沒有指定連線的條件,實際上oracle為我們自作主張的將emp中的deptno和dept中的deptno做了連線。

也就是實際上相當於

Select emp.ename,dept.dname

From emp join dept on emp.deptno = dept.deptno;

因為這兩張表的這兩個欄位deptno的型別和名稱完全相同。所以使用natural join時被自然的連線在一起了。

另外:

1.如果做自然連線的兩個表的有多個欄位都滿足有相同名稱個型別,那麼他們會被作為自然連線的條件。

2.如果自然連線的兩個表僅是欄位名稱相同,但資料型別不同,那麼將會返回一個錯誤。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/26937943/viewspace-1282405/,如需轉載,請註明出處,否則將追究法律責任。

相關文章