星空网 > 软件开发 > 数据库

【Oracle】内连接和外连接的区别

  参考:http://www.educity.cn/shujuku/555272.html 


  表A结构如下:  

  1. select * from A

  |【Oracle】内连接和外连接的区别

  表B结构如下:  

  1. select * from B

  【Oracle】内连接和外连接的区别

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

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

  【Oracle】内连接和外连接的区别

 
图3:连接关系图

 

要注意上图中标志的数字

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

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

  语句如下:

  1. Select* from A JOIN B ON A.Aid=B.Bnameid

  运行结果如下图4所示:

  【Oracle】内连接和外连接的区别
图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所示:

  【Oracle】内连接和外连接的区别
图5:左连接数据

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

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

  语句如下:

  1. select * from A Right JOIN B ON A.Aid=B.Bnameid

  运行结果如下图6所示:

  【Oracle】内连接和外连接的区别
图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

 




来自为知笔记(Wiz)






原标题:【Oracle】内连接和外连接的区别

关键词:oracle

*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。
相关文章
我的浏览记录
最新相关资讯
海外公司注册 | 跨境电商服务平台 | 深圳旅行社 | 东南亚物流