Oracle串連<二>

來源:互聯網
上載者:User

標籤:

      3. 外串連

      外串連是指在內串連的基礎上,將某個串連表中不符合串連條件的記錄加入結果集。根據結果集中所包含不符合串連條件的記錄來源的不同,外串連分為左外串連、右外串連、全外串連3中。

    (1)左外串連

     左外串連是指在內串連的基礎上,將串連操作符左側表中不符合串連條件的記錄加入結果集中,與之對應的串連操作符右側列表用NULL填充。

    在Oracle資料庫,左外串連的表示方式有兩種。

  1. 標準SQL語句的串連方式

    SELECT table1.column,table2.column[,...]

    FROM table1 LEFT JOIN table2[,]

    ON table1.column <operator> table2.column[,...];

  2. Oracle擴充的串連方式

    SELECT table1.column,table2.column[,...]

    FROM table1,table2[,...]

       ON table1.column<operator> table2.column(+)[...];

例如,查詢10號部門的部門名、員工號、員工名和所有其他部門的名稱,語句為

SQL>SELECT dname,empno,ename FROM dept  LEFT JOIN  emp

        ON dept.deptno=emp.deptno AND dept.deptno=10;

SQL>SELECT dname,empno,ename FROM dept,emp

        WHERE dept.deptno=emp.deptno(+) AND emp.deptno(+)=10;

      (2)右外串連

      右外串連是指在內串連的基礎上,將串連操作符右側表中不符合串連條件的記錄加入結果集中,與之對應的串連操作符左側列表用NULL填充。

  1. 標準SQL語句的串連方式:

    SELECT table1.column, table2.column[,...]

    FROM table1, RIGHT JOIN table2 [,...]

    ON table1.column<operator> table2.column[...];

  2. Oracle擴充的串連方式:

    SELECT table1.column, table2.column[,...]

    FROM  table1, table2[,...]

    WHERE  table1.column(+)<operator> table2.column[...];

    例如,查詢20號部門的部門名稱及其員工號、員工名,和所有其他部門的員工名、員工號,語句為

SQL>SELECT empno,ename,dname FROM dept RIGHT JOIN emp 

        ON dept.deptno = emp.deptno AND dept.deptno=20;

SQL>SELECT empno,ename,dname FROM dept, emp

        WHERE dept.deptno(+) =emp.deptno AND dept.deptno(+) =20;

        (3)全外串連

        全外串連是指在內串連的基礎上,將串連操作符兩側表中不符合串連條件的記錄加入結果集中。

        在Oracle資料庫中,全外串連的表示方式為

        SELECT table1.column,table2.column[,...]

        FROM table1 FULL JOIN table2[,...]

        ON table1.column1 = table2.column2[...];

        例如,查詢所有的部門名和員工名,語句為:

SQL>SELECT dname,ename FROM emp FULL JOIN dept ON emp.deptno = dept.deptno;

注意:(+)操作符僅適用於左外串連和右外串連,而且如果WHERE 子句中包含多個條件,則必須在所有條件中包含(+)操作符。




Oracle串連<二>

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.