Oracle内连接、外连接

本文详细解析了Oracle SQL中内连接与外连接的区别及应用场景,通过创建两张简易表A、B进行对比分析,帮助读者理解等值连接、非等值连接、自连接以及左连接和右连接的概念。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

      在oracle的SQL语句常用的连接有内连接(inner join),外连接(outer join)等,内连接又包括等值连接,非等值连接,自连接;而外连接又分为左连接和右连接。其中默认的是内连接的等值连接。

为了方便我们创建两张最简易的表A、B,具体的表结构参看下面,来分析内连接与外连接的区

     图1,表A     图2 表B

                                 图1                                                                图2

                    图3

                                                                                               图3

    (1)内连接:利用内连接(等值)就可以获取蓝色的公共部分C,即图3中的数据集C,结果集为如下:

                   图4

                                                                                图4

      其实 select * from A join B on A.Aid=B.Bnamid;等价于

       select * from A,B where A.Aid=B.Bnamid; 

 注:非等值连接主要的话是针对一个范围来查询数据,自连接主要就是把1张表堪称两张表来用。            

(2)外连接:分为左外连接(left join)与右外连接(right join) 左外连接即公共显示的蓝色部分C+显示黄色的记录集A1,显示语句等价于select * from A,B where A.Aid=B.Bnamid(+);

               图5

                                                                               图5   

右外连接即公共显示的蓝色部分C+显示绿色的B1,显示语句等价于

select * from A,B where A.Aid(+)=B.Bnamid;

             图6

                                                                               图6

  表A和表B情况是相对的,以上实验都是A在左边的情况,其实A left join B与B right join A的情况的结果集是一样的。

 

2013年09月03日添加:

  今天又看到一幅比较不错的图片,详细介绍了数据库连接,下面附上

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值