【Oracle学习笔记-4】内连接和外连接的区别

参考链接(非常棒)

摘要

下面主要以两个例子进行说明:


例子1:


  表A结构如下:  

 
   
  1. select * from A
  | 731047-20160128231611488-1525455947.jpg

  表B结构如下:  

 
   
  1. select * from B
   731047-20160128231611848-1959093857.jpg

 两个表要做连接,就必须有个连接字段,在A表中的Aid和B表中的Bnameid就是两个连接字段。

  下图3说明了连接的所有记录集之间的关系:

  731047-20160128231612504-843672533.jpg


图3:连接关系图

要注意上图中标志的数字

  现在我们对内连接和外连接一一讲解。

  1.内连接利用内连接可获取两表的公共部分的记录,即图3的记录集C

  语句如下:

 
   
  1. Select * from A JOIN B ON A.Aid=B.Bnameid
  运行结果如下图4所示:

  731047-20160128231613004-1495166132.jpg
图4:内连接数据-共8条记录

  其实select * from A,B where A.Aid=B.Bnameid与Select * from A JOIN B ON A.Aid=B.Bnameid的运行结果是一样的。

  2.外连接:外连接分为两种,一种是左连接(Left JOIN)和右连接(Right JOIN)

  (1)左连接(Left JOIN):即图3公共部分+记录集A1

  语句如下:

 
   
  1. select * from A Left JOIN B ON A.Aid=B.Bnameid
  运行结果如下图5所示:

  731047-20160128231613645-1037786471.jpg
图5:左连接数据

  结论:内连接得到的数据+左边表格的4条数据(1,4,5,9)

  (2)右连接(Right JOIN):即图3公共部分+记录集B1

  语句如下:

 
   
  1. select * from A Right JOIN B ON A.Aid=B.Bnameid
  运行结果如下图6所示:

  731047-20160128231614301-1444398044.jpg
图6:右连接数据

   结论:内连接得到的数据+右边表格的1条数据(11)


  其他说明:

 
   
  1.  select * from B Left JOIN A ON A.Aid=B.Bnameid
等价于
 
    
  1. select * from A Right JOIN B ON A.Aid=B.Bnameid

例子2:

select * from test1;
select * from test2;
内连接: select  *  from  test1 t1  join  test2 t2  on  t1.aa = t2.xx
左连接: select  *  from  test1 t1  left   join  test2 t2  on  t1.aa = t2.xx;
有连接: select  *  from  test1 t1  right   join  test2 t2  on  t1.aa = t2.xx;
 

博客:
  淘宝-代做毕设:







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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值