带你分析MySQL中的三种连接

  MySQL中表连接一直是很多人比较混淆的地方。到底MySQL中有哪几种连接,它们有什么不一样的呢?下面笔者带你一一分析。
  什么是表连接?表连接一般体现在表之间的关系上。当需要同时显示多个表中的字段时,就可以用表连接来实现。而表连接中,分为内连接和外连接。外连接中又分为左外连接,右外连接。有些人可能会疑惑,不是还有全外连接吗?是的,在其他的数据库中的确存在全外连接,但是在MySQL数据库中并不存在,所以全外连接我们暂时忽略掉。
  内连接
  内连接:选出两张表中互相匹配的记录。
  SQL语句写法:select * from A表,B表 where A表.C字段=B表.D字段

  左外连接
  左外连接:筛选出包含左表的记录并且右表没有和它匹配的记录。
  SQL语句写法:select * from A表 left join B表 on A表.C字段=B表.D字段

  右外连接
  右外连接:筛选出包含右表的记录并且左表没有和它匹配的记录。
  SQL语句写法:select * from A表 right join B表 on A表.C字段=B表.D字段

  如果你对上面文绉绉的文字理解不了,下面我们就实际用数据库演示一下,看看三种连接到底有什么不同的结果。
  我们以两个数据表为例。一个是pet表,表示宠物。一个是person表,表示主人。宠物表中两个字段,id和name。主人表中有三个字段,id、name和pid。pid表示这个人的宠物id。宠物表的id和主人表的pid之间存在外键联系,一个主人拥有一个宠物。
  pet表和person表的结构
在这里插入图片描述
  pet表和person表的数据
在这里插入图片描述
  使用内连接进行查询
在这里插入图片描述
  使用左外连接进行查询
在这里插入图片描述
  使用右外连接进行查询
在这里插入图片描述

总结:笔者最后用自己的话总结一下,表连接使用在两个表之间有外键联系的情况下。使用内连接时,会把两个表字段中有相同数据的记录查询出来,没有相同数据的记录则不会显示。而外连接不仅会把有相同数据的记录显示出来,也会把没有相同数据的记录显示出来。左外连接则是以左表为标准,以左表外键字段中所有数据去连接右表,当右表中没有左表某个数据的记录时,则会置为NULL。右外连接则是以右表为标准,以右表外键字段中的所有数据去连接左表,当左表中没有右表某个数据的记录时,则会置为NULL。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值