少年阿賓

          那些青春的歲月

            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 閱讀(11609) 評論(1)  編輯  收藏 所屬分類: oracle

          Feedback

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

          主站蜘蛛池模板: 鸡东县| 潼关县| 集贤县| 镇远县| 北流市| 晋州市| 湖南省| 中卫市| 思南县| 阳城县| 赣州市| 丽江市| 米脂县| 乌拉特后旗| 澳门| 南通市| 吉安市| 西昌市| 江阴市| 祁门县| 泰来县| 彩票| 湟中县| 子长县| 万盛区| 永顺县| 开化县| 迭部县| 定远县| 渝北区| 白山市| 德令哈市| 进贤县| 资阳市| 农安县| 唐河县| 达州市| 文安县| 肥城市| 宜川县| 甘洛县|