【数据库】内连接、左连接、右连接、全连接
四种数据库连接方式的通俗解析,用日常场景类比帮助理解。这篇全文ai写的(*^▽^*),粘过来记录一下学习用。
·
以下是四种数据库连接方式的通俗解析,用日常场景类比帮助理解:
1. 内连接(INNER JOIN)
比喻:严格的双向相亲会
- 规则:只有双方互相看对眼的才能配对成功(两表匹配字段值完全相同)
- 结果:仅显示共同存在的数据(如学生表和成绩表匹配后,只显示有成绩的学生)
- 应用场景:查询已售出的商品详情(排除未下单的商品)
2. 左连接(LEFT JOIN)
比喻:霸道总裁式招聘
- 规则:左表全员录用,右表没有匹配的用
NULL
占位(如坚持保留所有客户,哪怕他们未消费) - 结果:左表数据全部保留,右表缺失数据用
NULL
填充 - 应用场景:客服系统需查看所有客户信息(包括未投诉的客户)
3. 右连接(RIGHT JOIN)
比喻:粉丝见面会
- 规则:右表偶像全员出席,左表粉丝没票的用
NULL
(如显示所有产品,即使无销售记录) - 结果:右表数据全部保留,左表缺失数据用
NULL
填充 - 应用场景:库存管理系统需显示所有商品(包括滞销品)
4. 全连接(FULL JOIN)
比喻:民政局婚姻登记处
- 规则:左右两表所有记录都会出现,没匹配的用
NULL
(如同时列出所有学生和所有成绩,不管是否匹配) - 结果:两表数据合并,缺失部分自动补
NULL
- 注意:MySQL需通过
LEFT JOIN UNION RIGHT JOIN
模拟实现
对比总结
连接类型 | 保留哪边数据 | NULL处理 | 使用频率 |
---|---|---|---|
内连接 | 仅匹配成功的数据 | 不保留 | 高(严格过滤) |
左连接 | 左表全部 | 右表补NULL | 较高 |
右连接 | 右表全部 | 左表补NULL | 较低 |
全连接 | 两表全部 | 双向补NULL | 低(需模拟) |
小技巧:想象左表是「公司员工名单」,右表是「工资表」——
内连接=只发工资的员工,左连接=全员名单(没工资的留空),右连接=所有工资记录(没对应员工的留空)
更多推荐
所有评论(0)