--建立测试数据 create table a(id number); create table b(id number); insert into a values(1); insert into a values(2); insert into a values(3); insert into b values(1); insert into b values(2); insert into b values(4); commit; --左: --主流数据库通用的方法 select * from a left join b on a.id=b.id; --Oracle特有的方法 select * from a, b where a.id=b.id(+); ID ID ---------- ---------- 1 1 2 2 3 --右: --主流数据库通用的方法 select * from a right join b on a.id=b.id; --Oracle特有的方法 select * from a, b where a.id(+)=b.id; ID ID ---------- ---------- 1 1 2 2 4 --内 --主流数据库通用的方法 select * from a join b on a.id=b.id; --where关联 select * from a, b where a.id=b.id; ID ID ---------- ---------- 1 1 2 2 --全外 --主流数据库通用的方法 select * from a full join b on a.id=b.id; --Oracle特有的方法 select * from a, b where a.id = b.id(+) union select * from a, b where a.id(+) = b.id; ID ID ---------- ---------- 1 1 2 2 3 4 --完全,也叫交叉连接或者笛卡尔积 --主流数据库通用的方法 select * from a,b; --或者 select * from a cross join b; ID ID ---------- ---------- 1 1 1 2 1 4 2 1 2 2 2 4 3 1 3 2 3 4 连接无非是这几个 --内连接和where相同 inner join --左向外连接,返回左边表所有符合条件的 left join --右向外连接,返回右边表所有符合条件的 right join --完整外部连接,左向外连接和右向外连接的合集 full join --交叉连接,也称笛卡儿积。返回左表中的每一行与右表中所有行的组合 cross join --补充: --左向外连接,返回左边表所有符合条件的, --注意这里没有第二个加号,会直接过滤掉数据,只显示符合条件的记录 select * from a, b where a.id = b.id(+) and b.id = 2; ID ID ---------- ---------- 2 2 --左向外连接,返回左边表所有符合条件的 --注意where上第二个加号,它的作用是修改右边表记录的显示,例如如果b.id(+) = 2,显示为2,否则显示null select * from a, b where a.id = b.id(+) and b.id(+) = 2; ID ID ---------- ---------- 2 2 3 1
相关推荐
理解oracle中的外连接,希望对下载的人有帮助
理解oracle中的外连接.doc
理解Oracle中的外连接
本文在作者测试通过的基础上,采用图文相结合的格式和方式,对Oracle连接和使用的具体方法和命令进行了详尽说明,零基础入门级读者只需按照本文内容逐步进行学习和操作,即可完成Oracle连接和使用的学习和掌握。
详细安装步骤+个人理解
深入理解Oracle RAC 12c(完整书签)
对于我的理解,ORACLE项目来说一个项目就应该有一个用户和其对应的表空间,而MYSQL项目中也应该有个用户和一个库。在ORACLE(db2也一样)中表空间是文件系统中的物理容器的逻辑表示,视图、触发器和存储过程也可以保存...
开Oracle调优鹰眼,深入理解AWR性能报告,非常好的文档,Oracle DBA必备
24.理解和使用Oracle 8i分析工具-LogMiner 25.哪些初始化参数最影响Oracle系统性能 26.你的SQL语句在什么情况下使用全表扫描? 27.如何对CLOB行字段执行全文检索 28.如何让你的SQL运行得更快 29.如何使...
Hint概述(/*+??*/的用法) 基于代价的优化器是很聪明的,在绝大多数情况下它会选择正确的优化...此时就需要DBA进行人为的干预,告诉优化器使用我们指定的存取路径或连接类型生成执行计划,从 而使语句高效的运行。
使用外连接查询 自连接查询 第五章 组函数 定义及有效的使用组函数 使用Group By对查询数据分组 使用HAVING子句对分组后的数据进行过滤 第六章 子查询 第七章 数据建模及数据库设计 了解系统开发的步骤 数据关系...
作为一个Oracle专业人员,你应该知道在SQL语句第一次进入库缓存时可能存在重大的启动延迟。...但是通过理解Oracle内部产生执行计划的机制,能够控制Oracle花费在评估连接顺序的时间数量,并且能在大体上提高查询性能。
安装ORACLE数据库软件,dbca安装数据库后,需要配置listener连接数据库。这里有一些概念比较难理解,记录一些分析实战结论。 从连接端讲起。 1 连接数据库的方式 oracle的连接串有几部分构成,这里就按sqlplus为例...
手工创建Oracle数据库.每个参数作用都详细介绍。是您能够更加深入的理解Oracle数据库
英文版,对ORACLE RAC切换理解,结合HACMP或MC/SG高可用的几个问题。 1、什么是cluster 一个cluster是由两个或多个独立的、通过网络连接的servers组成的。集群的目的主要有两方面:提高可用性,在当前活动的node...
这是我通过MFC连接数据库做的一个课程设计,可以参考,还希望高手多加指点
§2.4.1.7 理解连接管理器信息 53 §2.4.2 跟踪文件( Trace File ) 53 §2.4.2.1 跟踪文件的命名: 54 §2.4.2.2 参数设置与初始化文件: 54 §2.4.2.3 在控制实用程序运行中设置跟踪参数 56 §2.4.2.4 服务器/客户...
共两个包,第二个包连接: http://download.csdn.net/detail/notbaron/9457116
本文档详细讲解ORACLE...数据库连接等,还包括数据库的创建于备份,启动与关闭方式,安全配置等,也包含SQL语句应用,PL/SQL程序设计,非常适合ORACLE初学者使用,文档写的很详细,非常容易理解,希望能对大家有所帮助