数据库的连接类型:内连接,外连接,全连接 ,交叉连接

作用:连接是关系数据库的特点,数据的关联查询用到 多表连接 提高查询效率

前段时间面试被问到数据库的内连接和外连接的问题,进过一番周折的无师自通,呵呵,解析如下

数据表的集合如下:

表A的字段(Person)                                  表B的字段

                                  

A:淡灰色为集合表A的补集

C:红色为表A和表B数据集的交集

B:深灰色为集合表B补集

内连接:(典型的连接运算,使用条件  =   或   <>  即!=  之类的比较运算符)。集合表示方法

内连接的结果就是C

下面进行mysql的数据结果的演示:

sql 代码 :

From  A inner join b  B on A.id = B.id (演示的关系)

由于A表中有9条记录,B表中也有9条记录,所以此时返回的数据是A和B的交集。

外连接 :有左外连接和右外连接

左外连接: 左向外连接的结果集包括LEFT  OUTER子句中指定的左表的所有行,而不仅仅是连接列所匹配的行。如果左表的某行在右表中没有匹配行,则在相关联的结果集行中右表的所有选择列表列均为空值。

FROM A a LEFT LEFT JOIN B  b ON a.A_ID=B.B_RE_AID ;

左外连接的结果就是A+ C

下面进行mysql的数据结果的演示

右外连接: 右向外连接是左向外连接的反向连接。将返回右表的所有行。如果右表的某行在左表中没有匹配行,则将为左表返回空值。

FROM A a LEFT RIGHT  JOIN B  b ON a.A_ID=B.B_RE_AID ;

左外连接的结果就是 B+C

下面进行mysql的数据结果的演示

全连接:完整外部连接返回左表和右表中的所有行。当某行在另一个表中没有匹配行时,则另一个表的选择列表列包含空值。如果表之间有匹配行,则整个结果集行包含基表的数据值。

FROM A a LEFT FULL  JOIN B  b ON a.A_ID=B.B_RE_AID ;

左外连接的结果就是A + B + C

由于mysql不支持全外连接,以下是Oracle的测试结果

交叉连接:交叉连接返回左表中的所有行,左表中的每一行与右表中的所有行组合。交叉连接也称作笛卡尔积。

sql  写法:select a.* ,b.* from A a CROSS JOIN B b ;或者 直接写select a.* ,b.* from A a,B b;

结果: A * B  返回A和B的乘积  也称作笛卡尔积。

返回81 条记录

mysql a左外连接b b左外连接c_数据库中的 内连接,外连接(左连接,左外连接,右连接,右外连接),全连接,交叉连接...相关推荐

  1. 数据库中的内连接、自然连接和外连接的区别

    数据中的连接join分为内连接.自然连接.外连接,外连接又分为左外连接.右外连接.全外连接 当然,这些分类都是在连接的基础上,是从两个表中记录的笛卡尔积中选取满足连接的记录.笛卡尔积简单的说就是一个表 ...

  2. mysql select 所有表_怎样用SQL语句查询一个数据库中的所有表

    展开全部 查询32313133353236313431303231363533e59b9ee7ad9431333431356639一个数据库中的所有表sql语句是show tables: 显示所有数据 ...

  3. mysql 外链接 后面的on_mysql数据库中关于内连接、外链接中on where having的用法。(转载)...

    SQL中on条件与where条件的区别 数据库在通过连接两张或多张表来返回记录时,都会生成一张中间的临时表,然后再将这张临时表返回给用户. 在使用left jion时,on和where条件的区别如下: ...

  4. 如何从数据库中筛选出达成指定里程碑节点的项目_公测首发 | 支持API的连接型智能多维表格,「vika维格表」如何让数字化真正成为生产力?...

    △ 是新朋友吗?记得先点上面 关注我哦~ 维格星球 http://vika.cn 市面上的软件工具那么多,但却很少可以做好连接和整合,真正帮助我们更好地工作和生活. 毕竟,对于使用软件提升「生产力」, ...

  5. qt mysql查询中文相等_请教:Qt如何实现查询数据库中具有中文表名的表

    就好像我上面所说的,你要保证源代码转换后的中文是正确的编码.你估计是 msvc 编译的吧.那货默认 gbk 编码,但 tr 不知道,转换后到内存里面的文字可能就乱码了. 办法好几个,不过不具可移植性. ...

  6. MySQL数据库中的内置函数

    SQL函数分为单行函数和多行函数: 单行函数: 红色标注的为重点. - - - -字符串函数: - - - - - - - - - - 1.length() 存储长度 - - - - - - - - ...

  7. mysql创建用户,并赋予权限:只能查某个数据库中的某张表(只读)

    grant select on allindata_deb.user to lhz@% identified by 123456 grant select on test.test to test@% ...

  8. java操作mysql导表_Java实现批量导入excel表格数据到数据库中的方法

    本文实例讲述了Java实现批量导入excel表格数据到数据库中的方法.分享给大家供大家参考,具体如下: 1.创建导入抽象类 package com.gcloud.common.excel; impor ...

  9. mysql怎么把文字图片保存在一起_如何在数据库中同时保存文本和图片

    展开全部 向数据库中保存不同类型的文件,和在数据库中保存图e69da5e887aa3231313335323631343130323136353331333337613164片是一样的.就是向数据库以 ...

最新文章

  1. ubuntu 中修改用户名后sudo无法解析主机
  2. Redis cluster日常管理【二】
  3. ioctl中的ifconf ifreg 结构
  4. 牛客 - Dance with a stick(大风车模型)
  5. Vue.js入门教程-组件注册
  6. php fastcgi exp,nginx +phpfastcgi 环境下 导出excel文件,超时,数据被截断问题,解决...
  7. 数据 3 分钟 | TiDB 5.0 正式发布、Graph + AI 2021 全球峰会即将召开、2020 年图灵奖公布...
  8. 流畅的python 数据模型
  9. Dotfuscator Professional Edition 4.1
  10. 尚硅谷Java入门视频教程第五章——面向对象编程(中)
  11. FreeMarker标签使用以及精度数字的处理
  12. maya python教程下载_[转载]技术教程-MayaPython教程四之实战篇
  13. 什么是MES?MES系统有哪些功能?
  14. 神经网络作文1000字,我与神经系统作文
  15. MinGW-w64在windows下的离线安装
  16. 数码相框解决方案深度分析
  17. java俄罗斯方块视频_[VIP视频]【A0233】java面对对象编程-俄罗斯方块视频教程 高清视频 百度云 百度网...
  18. 网络图片转换为文件类型
  19. 联想 Lenovo 小新Pro-13ARE 2020 笔记本电脑 评测
  20. MATLAB-直方图均衡化

热门文章

  1. 中科院发布国产开源高性能RISC-V处理器“香山”,对标ARM-道合顺大数据infinigo
  2. Nginx 反向代理 Windows安装部署教程
  3. oracle ogg巡检,述说OGG检查点
  4. android 的由来,Android的词源_Android的由来_同根词_同源词_趣词词源字典
  5. 我的大学四年——郭天祥
  6. 微软活动目录逻辑结构分析
  7. linux zx命令_linux常用命令小结
  8. 【Zotero文献管理】使用zotero+坚果云进行文献管理
  9. 既约分数(最大相除法)
  10. “公域流量”与“私域流量”