`

oracle 左右连接外连接的理解

 
阅读更多
--建立测试数据
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中的外连接,希望对下载的人有帮助

    理解oracle中的外连接.doc

    理解oracle中的外连接.doc

    Oracle外连接

    理解Oracle中的外连接

    Oracle连接和使用.pdf

    本文在作者测试通过的基础上,采用图文相结合的格式和方式,对Oracle连接和使用的具体方法和命令进行了详尽说明,零基础入门级读者只需按照本文内容逐步进行学习和操作,即可完成Oracle连接和使用的学习和掌握。

    Oracle19C RAC通过gateways连接SQL server数据库

    详细安装步骤+个人理解

    深入理解Oracle RAC 12c(完整书签).rar

    深入理解Oracle RAC 12c(完整书签)

    oracle和mysql的区别

    对于我的理解,ORACLE项目来说一个项目就应该有一个用户和其对应的表空间,而MYSQL项目中也应该有个用户和一个库。在ORACLE(db2也一样)中表空间是文件系统中的物理容器的逻辑表示,视图、触发器和存储过程也可以保存...

    Oracle AWR报告最详细分析

    开Oracle调优鹰眼,深入理解AWR性能报告,非常好的文档,Oracle DBA必备

    Oracle数据库学习指南

    24.理解和使用Oracle 8i分析工具-LogMiner 25.哪些初始化参数最影响Oracle系统性能 26.你的SQL语句在什么情况下使用全表扫描? 27.如何对CLOB行字段执行全文检索 28.如何让你的SQL运行得更快 29.如何使...

    Oracle中hint的理解篇

    Hint概述(/*+??*/的用法) 基于代价的优化器是很聪明的,在绝大多数情况下它会选择正确的优化...此时就需要DBA进行人为的干预,告诉优化器使用我们指定的存取路径或连接类型生成执行计划,从 而使语句高效的运行。

    Oracle数据库Sql语句详解大全

    使用外连接查询 自连接查询 第五章 组函数 定义及有效的使用组函数 使用Group By对查询数据分组 使用HAVING子句对分组后的数据进行过滤 第六章 子查询 第七章 数据建模及数据库设计 了解系统开发的步骤 数据关系...

    如何用智能优化器提高Oracle的性能

    作为一个Oracle专业人员,你应该知道在SQL语句第一次进入库缓存时可能存在重大的启动延迟。...但是通过理解Oracle内部产生执行计划的机制,能够控制Oracle花费在评估连接顺序的时间数量,并且能在大体上提高查询性能。

    Oracle连接配置解读

    安装ORACLE数据库软件,dbca安装数据库后,需要配置listener连接数据库。这里有一些概念比较难理解,记录一些分析实战结论。 从连接端讲起。 1 连接数据库的方式 oracle的连接串有几部分构成,这里就按sqlplus为例...

    手动创建Oracle11g数据库

    手工创建Oracle数据库.每个参数作用都详细介绍。是您能够更加深入的理解Oracle数据库

    oracle_RAC英文版

    英文版,对ORACLE RAC切换理解,结合HACMP或MC/SG高可用的几个问题。 1、什么是cluster 一个cluster是由两个或多个独立的、通过网络连接的servers组成的。集群的目的主要有两方面:提高可用性,在当前活动的node...

    饭店管理系统 利用MFC连接 理解数据库

    这是我通过MFC连接数据库做的一个课程设计,可以参考,还希望高手多加指点

    ORACLE9i_优化设计与系统调整

    §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 服务器/客户...

    深入理解Oracle_RAC_12c PDF电子书下载 带书签目录 完整版.z01(2-1)

    共两个包,第二个包连接: http://download.csdn.net/detail/notbaron/9457116

    Oracle从入门到精通指南

    本文档详细讲解ORACLE...数据库连接等,还包括数据库的创建于备份,启动与关闭方式,安全配置等,也包含SQL语句应用,PL/SQL程序设计,非常适合ORACLE初学者使用,文档写的很详细,非常容易理解,希望能对大家有所帮助

Global site tag (gtag.js) - Google Analytics