少年阿賓

          那些青春的歲月

            BlogJava :: 首頁 :: 聯系 :: 聚合  :: 管理
            500 Posts :: 0 Stories :: 135 Comments :: 0 Trackbacks

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

          posted on 2012-12-04 23:22 abin 閱讀(11604) 評論(1)  編輯  收藏 所屬分類: oracle

          Feedback

          # re: Oracle natural join(自然連接) 2014-02-06 22:17 adsfds
          動感地帶  回復  更多評論
            

          主站蜘蛛池模板: 奈曼旗| 大关县| 凤山市| 枝江市| 菏泽市| 博客| 贺州市| 孙吴县| 白银市| 资溪县| 临湘市| 永登县| 共和县| 邹城市| 内丘县| 五台县| 皋兰县| 威远县| 思南县| 兴山县| 大城县| 英吉沙县| 乌兰县| 广汉市| 鹤山市| 满洲里市| 威宁| 石棉县| 阿鲁科尔沁旗| 桑日县| 保德县| 达州市| 论坛| 武穴市| 海晏县| 龙胜| 巢湖市| 蓝山县| 广河县| 兴安盟| 永安市|