Oracle表连接方式

1.相等连接(即内连接)

只有连接列上在两个表中都出现且值相等的行才会出现查询结果中。

例如:SELECT * FROM A,B WHERE A.ID=B.ID;

如图所示:

20120928030041773.jpg

2.外连接

采用"(+)"来识别oracle数据库的LEFT/RIGHT/FULL OUTER JOIN连接方式。

(1)左条件(+)=右条件

代表除了显示匹配相等连接的信息之外,还显示右条件所在表中无法匹配相等连接条件的信息,即右边表所有的行都显示。称为"右外连接"。

例如:

SELECT... FROM 表1  RIGHT OUTER JOIN 表2 ON 连接条件

或SELECT * FROM EMP,DEPT WHERE EMP.DEPTNO(+) = DEPT.DEPTNO;

如图所示:

20120928030042541.jpg

(2)左条件=右条件(+)

代表除了显示匹配相等连接条件的信息之外,还显示左条件所以的表中无法匹配相等连接条件的信息,即左边表所有行都显示,称为"左外连接"。

例如:SELECT ... FROM 表1 LEFT OUTER JOIN 表2 ON 连接条件

或SELECT * FROM EMP,DEPT WHERE EMP.DEPTNO= DEPT.DEPTNO(+);

如图所示:

20120928030042156.jpg

(3)全外连接,包含两个表的全部行。

例如:SELECT ... FROM 表1 FULL JOIN 表2 ON 连接条件

如图所示:

20120928030042408.jpg

3.不等连接

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

例如:SELECT EMPNO,ENAME,SAL,SALGRADE.* FROM SALGRADE,EMP WHERE EMP.SAL BETWEEN LOSAL AND HISAL;

4.自连接

自连接是数据库经常要用的连接方式,使用自连接可以将自身表的一个镜像当作另一个表来对待,从而能够得到一些特殊的数据中表的连接方式。其将原表复制一份作为另一个表,两表做笛卡尔儿相等连接。

例如:

SELECT WORKER.ENAME,WORKER.MGR,MANAGER.EMPNO,MANAGER.ENAME FROM EMP WORKER,EMP MANAGER

WHERE WORKER.MGR = MANAGER.EMPNO;

 

 

转载于:https://my.oschina.net/yangfeima/blog/807798

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值