Oracle数据库中表的四种连接方式
Oracle表的连接是指在一个SQL语句中通过表与表之间的关连,从一个或多个表中检索相关的数据,大体上表与表之间的连接主要可分四种,分别为相等连接,外连接,不等连接和自连接,下文yjbys小编将从几个典型的例子来分析Oracle表的四种不同连接方式,一起来学习吧!
1. 相等连接
通过两个表具有相同意义的列,可以建立相等连接条件。只有连接列上在两个表中都出现且值相等的行才会出现在查询结果中。
例 查询员工信息以及对应的员工所在的部门信息:
SELECT * FROM EMP,DEPT;
SELECT * FROM EMP,DEPT
WHERE NO = NO;
REM 显示工资超过2000的员工信息以及对应的员工的部门名称。
2. 外连接
对于外连接,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 * FROM EMP,DEPT WHERE NO = NO;
--直接做相等连接:
SELECT * FROM EMP JOIN DEPT ON NO = NO;
REM 显示员工信息以及所对应的部门信息,显示没有员工的部门信息
--SELECT * FROM EMP,DEPT WHERE NO(+) = NO;
SELECT * FROM EMP RIGHT OUTER JOIN DEPT ON NO = NO;
REM 显示员工信息以及所对应的部门信息,显示没有部门的员工信息
--SELECT * FROM EMP,DEPT WHERE NO = NO(+);
SELECT * FROM EMP LEFT OUTER JOIN DEPT ON NO = NO;
3. 不等连接
两个表中的相关的两列进行不等连接,比较符号一般为>,<,...,BETWEEN.. AND..
REM SALGRADE
--DESC SALGRADE;
--SELECT * FROM SALGRADE;
REM 显示员工的编号,姓名,工资,以及工资所对应的级别。
SELECT EMPNO,ENAME,SAL,SALGRADE.* FROM SALGRADE,EMP
WHERE BETWEEN LOSAL AND HISAL;
REM 显示雇员的编号,姓名,工资,工资级别,所在部门的名称;
SELECT EMPNO,ENAME,SAL,GRADE,DNAME FROM EMP,DEPT,SALGRADE
WHERE NO = NO AND BETWEEN LOSAL AND HISAL;
4. 自连接
自连接是数据库中经常要用的连接方式,使用自连接可以将自身表的一个镜像当作另一个表来对待,从而能够得到一些特殊的数据。下面介绍一下自连接的方法:
将原表复制一份作为另一个表,两表做笛卡儿相等连接。
例 显示雇员的编号,名称,以及该雇员的经理名称
SELECT E,,O,E FROM EMP WORKER,EMP MANAGER
WHERE = O;
相關文章
-
如何操作Oracle数据库中的(+)连接
本文主要向你介绍的是Oracle数据库中的(+)连接的`实际操作,本文是以相关使用代码的描述来引出其实际的操作,你如果是Oracle数据库中的(+)连接的疯狂一族的话,就一起来看看吧! 1. 从表A.A1 (+) = 主表B.B1复制代码SELE -
如何通过Oracle连接管理器控制数据库连接
为了更好的控制Oracle数据库的连接,Oracle提出了一个连接管理器的解决方案。连接管理器是Oracle开发的一个中间件解决方案,它提供了许多可缩放性的特性。Oralce连接管理器又是一个多用途的联网解决方案,可用于提升可伸缩 -
Oracle数据库无响应故障处理方式
Oracle数据库无响应故障,简单地讲就是数据库实例不能响应客户端发起的请求,客户端提交一个SQL后,就一直处于等待数据库实例返回结果的状态。更严重的现象是客户端根本不能连接到数据库,发起一个连接请求后,一直处于等待状 -
Oracle数据库与FoxPro数据的转换
在学习、工作乃至生活中,大家都经常看到作文的身影吧,作文根据体裁的不同可以分为记叙文、说明文、应用文、议论文。那么你知道一篇好的作文该怎么写吗?下面是小编帮大家整理的写黄山的作文4篇,欢迎阅读,希望大家能够喜欢 -
Oracle数据库插入日期型数据的方法
racle数据库插入日期型数据,应该怎么下手呢?下面小编为大家整理了关于Oracle数据库插入日期型数据的方法,希望能为你提供帮助:往Oracle数据库中插入日期型数据(to_date的用法)INSERT INTO FLOOR VALUES ( to_date ( ' -
外部表在Oracle数据库中使用的限制
外部表是指不在数据库中的表,如操作系统上的一个按一定格式分割的文本文件或者其他类型的表。这个外部表对于Oracle数据库来说,就好像是一张视图,在数据库中可以像试图一样进行查询等操作。这个试图允许用户在外部数据上 -
oracle表空间启动数据库命令
为了方便大家学习,下面yjbys小编为大家准备了关于oracle表空间启动数据库命令的方法,欢迎阅读。启动数据库命令分为三个阶段:startup nomountalter database mountalter database open本用户读取其他用户对象的权限:selec -
Oracle数据库临时表管理技巧
我们在创建数据表的时候,若没有特殊的指明,那么我们创建的表是一个永久的关系型表格,也就是说,这个表格中对应的数据,除非是我们显示的删除的话,表中的数据是永远都存在的。相对应的,在Oracle数据库中还有一种类型的表,叫做临 -
Oracle数据库SELECT语句
在日常的学习、工作、生活中,大家一定都接触过作文吧,作文根据写作时限的不同可以分为限时作文和非限时作文。那么问题来了,到底应如何写一篇优秀的作文呢?以下是小编为大家整理的过家家作文,仅供参考,大家一起来看看吧。过 -
Oracle数据库基础知识:SELECT语句
SELECT语句是指用来查询、添加、 和删除数据库中数据的语句, 和删除数据库中数据的语句 , 它们 是 SELECT 、 INSERT 、 UPDATE 、 DELETE等. 下面是Oracle数据库基础知识——SELECT语句,希望对大家有所帮助