知识大全 内连接和外连接的区别

Posted 语句

篇首语:这个世界有两个我,一个假装快乐,一个真心难过。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 内连接和外连接的区别相关的知识,希望对你有一定的参考价值。

  在之前 我对MSSQL中的内连接和外连接所得出的数据集不是很清楚 这几天重新温习了一下SQL的书本 现在的思路应该是很清楚了 现在把自己的理解发出来给大家温习下 希望和我一样对SQL的连接语句不太理解的朋友能够有所帮助 (发这么菜的教程 各位大大们别笑话偶了 呵:D )

  有两个表A和表B

  表A结构如下

  Aid int 标识种子 主键 自增ID

  Aname varchar

  数据情况 即用select * from A出来的记录情况如下图 所示

  |图 :A表数据

  表B结构如下

  Bid int 标识种子 主键 自增ID

  Bnameid int

  数据情况 即用select * from B出来的记录情况如下图 所示

  图 :B表数据

  为了把Bid和Aid加以区分 不让大家有误解 所以把Bid的起始种子设置为

  有SQL基本知识的人都知道 两个表要做连接 就必须有个连接字段 从上表中的数据可以看出 在A表中的Aid和B表中的Bnameid就是两个连接字段

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

  图 :连接关系图

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

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

  语句如下 Select * from A JOIN B ON A Aid=B Bnameid

  运行结果如下图 所示

  图 :内连接数据

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

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

  ( )左连接(Left JOIN) 即图 公共部分记录集C+表A记录集A

  语句如下 select * from A Left JOIN B ON A Aid=B Bnameid

  运行结果如下图 所示

  图 :左连接数据

  说明

  在语句中 A在B的左边 并且是Left Join 所以其运算方式为 A左连接B的记录=图 公共部分记录集C+表A记录集A

  在图 中即记录集C中的存在的Aid为

  图 中即表A所有记录集A中存在的Aid为

  表A记录集A 中存在的Aid=(图 中即A表中所有Aid) (图 中即记录集C中存在的Aid) 最终得出为

  由此得出图 中A左连接B的记录=图 公共部分记录集C+表A记录集A

  最终得出的结果图 中可以看出Bnameid及Bid非NULL的记录都为图 公共部分记录集C中的记录 Bnameid及Bid为NULL的Aid为 的四笔记录就是表A记录集A 中存在的Aid

  ( )右连接(Right JOIN) 即图 公共部分记录集C+表B记录集B

  语句如下 select * from A Right JOIN B ON A Aid=B Bnameid

  运行结果如下图 所示

  图 :右连接数据

  说明

  在语句中 A在B的左边 并且是Right Join 所以其运算方式为 A右连接B的记录=图 公共部分记录集C+表B记录集B

  在图 中即记录集C中的存在的Aid为

  图 中即表B所有记录集B中存在的Bnameid为

  表B记录集B 中存在的Bnameid=(图 中即B表中所有Bnameid) (图 中即记录集C中存在的Aid) 最终得出为

  由此得出图 中A右连接B的记录=图 公共部分记录集C+表B记录集B

  最终得出的结果图 中可以看出Aid及Aname非NULL的记录都为图 公共部分记录集C中的记录 Aid及Aname为NULL的Aid为 的记录就是表B记录集B 中存在的Bnameid

  总结

  通过上面的运算解说 相信很多人已经想到 上面的情况(包括图 的关系图)说明的都只是A在B的左边的情况

  以下语句B在A的右边的又会出现什么情况呢??

  select * from B Left JOIN A ON A Aid=B Bnameid

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

  其实对图 左右翻转一下就可以得出以下结论

  select * from B Left JOIN A ON A Aid=B Bnameid和select * from A Right JOIN B ON A Aid=B Bnameid所得出的记录集是一样的

  而

cha138/Article/program/Oracle/201311/17198

相关参考

S700K型电动转辙机如何安装?

  (1)连好基础托板,但不要急于紧固各连接螺栓。  (2)转辙机就位,连接好各连接杆,调整基础托板位置,使转辙机的动作杆、连接杆和外锁闭装置的锁闭杆在同一条直线上;检查转辙机的高度,然后紧固连接螺栓

骨折愈合过程中成骨的方式

骨折愈合过程中有两种成骨方式:即膜内化骨及软骨内化骨。  膜内化骨骨折后内、外骨膜所含的成骨性细胞增生,使骨折端连接。骨膜不断增厚,钙化成骨。内、外骨膜增生、钙化成骨分别形成内骨痂和外骨痂。由骨膜增生

中性点与零点、零线有何区别?

  凡三相绕组的首端(或尾端)连接在一起的共同连接点,称电源中性点。当电源的中性点与接地装置有良好的连接时,该中性点便称为零点;而由零点引出的导线,则称为零线。

中性点与零点、零线有何区别?

  凡三相绕组的首端(或尾端)连接在一起的共同连接点,称电源中性点。当电源的中性点与接地装置有良好的连接时,该中性点便称为零点;而由零点引出的导线,则称为零线。

燃气管道管螺纹的连接有什么要求?

管螺纹的连接有圆柱形内螺纹拧入圆柱形外螺纹,圆柱形内螺纹拧入圆锥形外螺纹以及圆锥形内螺纹拧入圆锥形外螺纹三种形式。其中后两种方式的连接较紧密,是常用的连接方式,   为了增加管子螺纹接口的严密性和维修

粘着带与粘着斑连接有什么不同?

主要差别是:粘着带是细胞与细胞间的粘着连接,而粘着斑是细胞与细胞外基质相连。除了这一根本区别之外,还有其他一些不同:  ①参与粘着带连接的膜整合蛋白是钙粘着蛋白,而参与粘着斑连接的是整联蛋白,即细胞外

知识大全 智能电视看无线网为什么会出现内网连接失败

智能电视看无线网为什么会出现内网连接失败这样吧,你按照这个重新操作一下试试呢1、确保无线路由器和互联网连接都正常;打开智能电视。2、通过按动遥控器上的相应按键,进入电视的设置界面,导航到网络设置功能。

在同一电气连接部分内转移工作地点时应注意什么?

  同一电气连接部分中的工作安全措施,反映在一张工作票上是作为一个措施整体一次布置完毕的。对于现场设备带电部位和补充安全事项等,工作许可人向工作负责人在履行许可手续时都已交待清楚。转移到不同的工作地点

在同一电气连接部分内转移工作地点时应注意什么?

  同一电气连接部分中的工作安全措施,反映在一张工作票上是作为一个措施整体一次布置完毕的。对于现场设备带电部位和补充安全事项等,工作许可人向工作负责人在履行许可手续时都已交待清楚。转移到不同的工作地点

知识大全 怎么设置到家里无线路由器范围内手机自动连接Wifi?谢谢了,大神帮忙啊

怎么设置到家里无线路由器范围内手机自动连接Wifi?谢谢了,大神帮忙啊  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶