MySQL中表关联的理解

本文详细介绍了数据库查询中的四种连接类型:内连接、左外连接、右外连接和交叉连接。内连接类似于数学交集,只保留匹配的记录;左外连接保留左表所有数据,右表无匹配则填充NULL;右外连接则相反,保留右表所有数据,左表无匹配填充NULL;完全连接在两个表中都显示所有数据,无匹配则用NULL填充,但MySQL不支持。在实际工作中,通常使用小表左连接大表。
摘要由CSDN通过智能技术生成

“内连接、左外连接、右外连接、完全连接、交叉连接”的理解


内连接

相当于我们数学上学习过的交集,取左右两张表都存在的字段

inner join连接两个表,其中inner可以省略,分为等值连接(连接条件中的值相等)、非等值连接(连接条件中通过非等于号得出结果)、自连接(连接的两个表是同一个)只有满足连接条件的记录才会被包含在查询结果中

左外连接:

LEFT JOIN左边表中的数据都出现,右边没有数据以NULL填充

left outer join连接两个表,其中outer可以省略,一般写成left join,左表中的数据会被完全匹配,即使右表中没有数据和它对应,如果是这种情况,就用null补充右表中的数据

右外连接:

RIGHT JOIN右边表中的数据都出现,左边没有数据以NULL填充
注意:在工作中,常用的是:小表 left join 大表,小表驱动大表

right outer join连接两个表,其中outer可以省略,一般写成right join,右表中的数据会被完全匹配,即使左表中没有数据和它对应,如果是这种情况,就用null补充左表中的数据

完全连接:

full join连接两个表,两个表中的数据都会被完全匹配出来,如果另外一个表中没有数据与它对应,那就显示null进行匹配,MySQL数据库不支持这种写法,所以就别用MySQL数据库去验证了

交叉连接:

交叉连接不带WHERE子句,它返回被连接的两个表所有数据行的笛卡尔积,返回结果集合中的数据行数等于第一个表中符合查询条件的数据行数乘以第二个表中符合查询条件的数据行数。”,交叉连接用cross join连接两个表,例如select * from A cross join B,其实这种写法相当于select * from A,B

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值