Oracle中表的四种连接方式讲解.docx

  1. 1、本文档共3页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

Oracle中表的四种连接方式讲解

Oracle中表的四种连接方式讲解表的连接是指在一个SQL语句中通过表与表之间的关连,从一个或多个表中检索相关的数据,大体上表与表之间的连接主要可分四种,分别为相等连接,外连接,不等连接和自连接,本文将主要从以下几个典型的例子来分析Oracle表的四种不同连接方式:

相等连接

通过两个表具有相同意义的列,可以建立相等连接条件。

只有连接列上在两个表中都出现且值相等的行才会出现在查询结果中。例查询员工信息以及对应的员工所在的部门信息;

SELECT*FROMEMP,DEPT;SELECT*FROMEMP,DEPT

WHEREEMP.DEPTNO=DEPT.DEPTNO;

REM显示工资超过2000的员工信息以及对应的员工的部门名称。

外连接

对于外连接,Oracle中可以使用“(+)来”表示,9i可以使用LEFT/RIGHT/FULLOUTERJOIN,下面将配合实例一一介绍。除了显示匹配相等连接条件的信息之外,还显示无法匹配相等连接条件的某个表的信息。

外连接采用(+)来识别。

左条件(+)=右条件;

代表除了显示匹配相等连接条件的信息之外,还显示右条件所在的表中无法匹配相等连接条件的信息。

此时也称为右外连接.另一种表示方法是:

SELECT...FROM表1RIGHTOUTERJOIN表2ON连接条件

左条件=右条件(+);

代表除了显示匹配相等连接条件的信息之外,还显示左条件所在的表中无法匹配相等连接条件的信息。

此时也称为左外连接.

SELECT...FROM表1LEFTOUTERJOIN表2ON连接条件

例显示员工信息以及所对应的部门信息

--无法显示没有部门的员工信息

--无法显示没有员工的部门信息

--SELECT*FROMEMP,DEPTWHEREEMP.DEPTNO=DEPT.DEPTNO;

--直接做相等连接:

SELECT*FROMEMPJOINDEPTONEMP.DEPTNO=DEPT.DEPTNO;

REM显示员工信息以及所对应的部门信息,显示没有员工的部门信息

--SELECT*FROMEMP,DEPTWHEREEMP.DEPTNO(+)=DEPT.DEPTNO;

SELECT * FROM EMP RIGHT OUTER JOIN DEPT ON EMP.DEPTNO =DEPT.DEPTNO;

REM显示员工信息以及所对应的部门信息,显示没有部门的员工信息

--SELECT*FROMEMP,DEPTWHEREEMP.DEPTNO=DEPT.DEPTNO(+);

SELECT*FROMEMPLEFTOUTERJOINDEPTONEMP.DEPTNO=DEPT.DEPTNO;

不等连接

两个表中的相关的两列进行不等连接,比较符号一般为,,...,BETWEEN..AND..

REMSALGRADE

--DESCSALGRADE;

--SELECT*FROMSALGRADE;

REM显示员工的编号,姓名,工资,以及工资所对应的级别。

SELECTEMPNO,ENAME,SAL,SALGRADE.*FROMSALGRADE,EMPWHEREEMP.SALBETWEENLOSALANDHISAL;

REM显示雇员的编号,姓名,工资,工资级别,所在部门的名称;

SELECTEMPNO,ENAME,SAL,GRADE,DNAMEFROMEMP,DEPT,SALGRADEWHEREEMP.DEPTNO=DEPT.DEPTNOANDEMP.SALBETWEENLOSALAND

HISAL;

自连接

自连接是数据库中经常要用的连接方式,使用自连接可以将自身表的一个镜像当作另一个表来对待,从而能够得到一些特殊的数据。下面介绍一下自连接的方法:

将原表复制一份作为另一个表,两表做笛卡儿相等连接。例显示雇员的编号,名称,以及该雇员的经理名称

SELECTWORKER.ENAME,WORKER.MGR,MANAGER.EMPNO,MANAGER.ENAMEFROMEMPWORKER,EMPMANAGER

WHEREWORKER.MGR=MANAGER.EMPNO;

文档评论(0)

tianya189 + 关注
官方认证
内容提供者

该用户很懒,什么也没介绍

认证主体阳新县融易互联网技术工作室
IP属地上海
统一社会信用代码/组织机构代码
92420222MA4ELHM75D

1亿VIP精品文档

相关文档