课件内容

Oracle SQL

2.3.5 ORACLE中的外连接(OUTER JOIN):

    外连接扩展了ORACLE查询的能力,它不仅能返回查询中满足连接条件的记录行,而且它也能从一个表中返回一些或全部行,即使这些行不满足连接条件。

ORACLE9i前的版本中存在两种外连接:左外连接、右外连接。示例如下:

左外连接:

SELECT e.ename, e.deptno, d.dname

 FROM DEPT d,EMP e

WHERE d.deptno(+)=e.deptno;

 

右外连接:

SELECT e.ename, e.deptno, d.dname

 FROM DEPT d,EMP e

WHERE d.deptno=e.deptno(+);

(有关本节演示请参见实验演示2)

           在使用外连接时要注意:

A、 外连接操作(+)只能出现在WHERE条件中

B、  外连接不能和OR IN等逻辑操作符组合使用

              ORACLE9i中,引入了“LEFT OUTER JOIN”、“RIGHT OUTER JOIN”、“FULL OUTER JOIN”,分别支持ANSI/ISO标准的左外连接、右外连接、全连接。

           其示例如下:

连接形式

示例

左外连接

SELECT e.ename, e.deptno, d.dname

 FROM EMP e LEFT OUTER JOIN DEPT d

    ON d.deptno=e.deptno;

右外连接

SELECT e.ename, e.deptno, d.dname

 FROM EMP e RIGHT OUTER JOIN DEPT d

    ON d.deptno=e.deptno;

全连接

SELECT e.ename, e.deptno, d.dname

 FROM EMP e FULL OUTER JOIN DEPT d

    ON d.deptno=e.deptno;