以下的文章主要是对Oracle数据库中表的两种连接方式的详细解析,在Oracle数据库中表的一共有四种连接方式,但是本文主要讲述的前两种,希望大家在浏览完以下的文章会对Oracle数据库中表的连接方式有所了解。
表的连接是指在一个SQL语句中通过表与表之间的关连,从一个或多个表中检索相关的数据,大体上表与表之间的连接主要可分四种,分别为相等连接,外连接,不等连接和自连接,本文将主要从以下几个典型的例子来分析Oracle表的两种不同连接方式:
1. 相等连接
通过两个表具有相同意义的列,可以建立相等连接条件。
只有连接列上在两个表中都出现且值相等的行才会出现在查询结果中。
例 查询员工信息以及对应的员工所在的部门信息;
SELECT*FROMEMP,DEPT; SELECT*FROMEMP,DEPT WHEREEMP.DEPTNO=DEPT.DEPTNO;
REM 显示工资超过2000的员工信息以及对应的员工的部门名称。
2. 外连接
在Oracle数据库中表的两种连接方式中的外连接,在外连接中Oracle中可以使用“(+)”来表示,9i可以使用LEFT/RIGHT/FULL OUTER JOIN,下面将配合实例一一介绍。除了显示匹配相等连接条件的信息之外,还显示无法匹配相等连接条件的某个表的信息。
外连接采用(+)来识别。
A) 左条件(+) = 右条件;
代表除了显示匹配相等连接条件的信息之外,还显示右条件所在的表中无法匹配相等连接条件的信息。
此时也称为”右外连接”.另一种表示方法是:
SELECT … FROM 表1 RIGHT OUTER JOIN 表2 ON 连接条件
B) 左条件 = 右条件(+);
代表除了显示匹配相等连接条件的信息之外,还显示左条件所在的表中无法匹配相等连接条件的信息。
此时也称为”左外连接”.
SELECT … FROM 表1 LEFT OUTER JOIN 表2 ON 连接条件
例 显示员工信息以及所对应的部门信息
无法显示没有部门的员工信息,无法显示没有员工的部门信息
SELECT*FROMEMP,DEPTWHEREEMP.DEPTNO=DEPT.DEPTNO;