首页 ┆ 网站地图 ┆ 在线留言 ┆ 游戏资讯 ┆ 资源下载 
设为首页
加入收藏
联系我们
热门关键字: .net应用  操作系统  Dreamweaver  WinRAR  网络推广
高级搜索
您当前的位置: 主页>数据库>ORACLE>Oracle内连接、外连接、右外连接、全外连接小总结
Oracle内连接、外连接、右外连接、全外连接小总结
来源: 发布时间:2008-01-15 发布人: 浏览: 人次   字体: [ ]  

数据库版本:Oracle 9i

TESTA,TESTB,TESTC,各有A, B两列

A

B

001

10A

002

20A

 

A

B

001

10B

003

30B

 

A

B

001

10C

004

40C

 

连接分为两种:内连接与外连接。

 

A.内连接

内连接,即最常见的等值连接,例:

 

SELECT *
FROM TESTA,TESTB
WHERE TESTA.A=TESTB.A


结果

A

B

A

B

001

10A

001

10B

 

B.外连接

外连接分为左外连接,右外连接和全外连接。

1.  左外连接 left outer join 或者 left join

左外连接就是在等值连接的基础上加上主表中的未匹配数据,例:

 

SELECT *
FROM TESTA
LEFT OUTER JOIN TESTB
ON TESTA.A=TESTB.A

 

Oracle 支持另一种写法

 

SELECT *
FROM TESTA,TESTB
WHERE TESTA.A=TESTB.A(+)

结果:

A

B

A

B

001

10A

001

10B

002

10B

 

 

 

三个表做左外连接

SELECT *
FROM TESTA
LEFT OUTER JOIN TESTB
ON TESTA.A=TESTB.A
LEFT OUTER JOIN TESTC
ON TESTA.A=TESTC.A

 

Oracle 支持的另外一种写法

 

SELECT *
FROM TESTA,TESTB,TESTC
WHERE TESTA.A=TESTB.A(+)
AND TESTA.A=TESTC.A(+)

 

结果:

A

B

A

B

A

B

001

10A

001

10B

001

10C

002

20A

 

 

 

 

 

2. 右外连接 right outer join 或者 right join

右外连接是在等值连接的基础上加上被连接表的不匹配数据

 

SELECT *
FROM TESTA
RIGHT OUTER JOIN TESTB
ON TESTA.A=TESTB.A

Oracle支持的另一种写法

 

SELECT *
FROM TESTA,TESTB
WHERE TESTA.A(+)=TESTB.A

 

结果:

A

B

A

B

001

10A

001

10B

 

 

003

30B

 

3.全外连接 full outer join 或者 full join

全外连接是在等值连接的基础上将左表和右表的未匹配数据都加上

 

SELECT *
FROM TESTA
FULL OUTER JOIN TESTB
ON TESTA.A=TESTB.A

 

全外连接的等价写法,对同一表先做左连接,然后右连接

 

SELECT  TESTA.*,TESTB.*
FROM TESTA
LEFT OUTER JOIN TESTB
ON TESTA.A=TESTB.A
UNION
SELECT TESTA.*,TESTB.*
FROM TESTB
LEFT OUTER JOIN TESTA
ON TESTA.A=TESTB.A

 

结果:

A

B

A

B

001

10A

001

10B

002

20A

 

 

 

 

003

30B


相 关 文 章   发布商链接
·几个方面入手oracle性能优化方案
·Oracle sql性能优化调整规则汇总
·如何彻底删除安装Oracle留下的东西
·oracle分析函数row_number的实例应用
·详细讲解Oracle数据库灾难防护的核心...
·oracle中分割字符串,并求最大值
·解决ORACLE被锁定的资源两法
·oracle9i客户端如何连接oracle10g数...
·使用type类型和存储过程来完成oracle...
·利用函数实现oracle行列转换
 §最新评论:(评论内容只代表网友观点,与本站立场无关!)
网名: 验证码:  【所有评论】【↑返回顶部
评 分: 12 345
评论内容:(不能超过500字,请自觉遵守互联网相关政策法规。[按 Ctrl+Enter 可直接提交]
注意:请勿在本站发布政治话题、色情及违反法律的内容。
IT知道网 声明:刊登此文章是为了传递更多信息,文章内容仅供参考,转载请注明出处。
推 荐 文 章
·Oracle导致CPU进程100%原因及
·实例讲解对oracle进行简单树...
·Oracle服务费是如何计算的,以...
·如何完全清除Oracle
·ORACLE 10G分区表维护:全局...
·怎样有效提高Oracle 10G增量...
·Oracle数据库的四种启动方式...
·利用函数实现oracle行列转换
·使用type类型和存储过程来完...
·oracle9i客户端如何连接oracl...
·解决ORACLE被锁定的资源两法
·oracle中分割字符串,并求最...
·详细讲解Oracle数据库灾难防...
·oracle分析函数row_number的...
·如何彻底删除安装Oracle留下...
热 门 文 章
·ORACLE使用中的常见、实用的...
·导入、导出oracle数据库与复...
·oracle9i客户端如何连接oracl...
·oracle分析函数row_number的...
·几个方面入手oracle性能优化...
·oracle中分割字符串,并求最...
·利用函数实现oracle行列转换
·Oracle sql性能优化调整规则...
·Oracle巧取指定记录以及巧用...
·使用type类型和存储过程来完...
·oracle数据库导入Excel数据方...
·如何彻底删除安装Oracle留下...
·ORACLE 10G分区表维护:全局...
·解决ORACLE被锁定的资源两法
·实例讲解对oracle进行简单树...
网站首页 - 关于本站 - 加入收藏 - 网站地图 - 友情连接 - 在线留言 - 联系我们 - 返回顶部
Copyright © 2007 IT知道网.[冀ICP备07026896号]. All Rights Reserved .