左右内外连接

本文主要介绍数据库的四种连接方法,包括内连接、左连接、右连接和外连接。通过集合数组的概念,结合具体示例,阐述了每种连接方法如何利用表间主键和外键进行数据连接,以及在查询中不同的主辅关系和数据显示规则。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

下面是我学习的对左右内外连接的理解
在我们的日常生活中每当要查询的时候就会考虑到要用什么的方法去连接
连接方法有四种,分别是内连接(innerjoin)左连接(left join)右连接(right join)内连接(innerjoin)外连接(outer join)
首先我们来看看内连接(innerjoin),内连接(innerjoin)就如同我们以前学的数学中所学的集合数组那样分为:交集、并集。内连接(innerjoin)就如同A数组和B数组,分别求出A数组、和B数组两个数组间的交集 。
交集的意思就是说把A数组、和B数组、里面相同的数据提取出来放到一块去
假如,A数组为(1、2、3、4、5、6),B数组为(2、3、4 、5、6、7)
那么他们的交集就是(2、3、4、5、6)
同理内连接(innerjoin)也就是像数学中的交集,我们查询的数据得分是通过表与表之间的主键和外键拉连接。如下图为例子
在这里插入图片描述
A表和B表为要查询的表,A、主键为某个表的主键, B、外键为另外一个表和A表主键有关联的表进行连接,要从A表和B表中数据连接把相等的数据找出来连接A表里面的(1、2、3、4、5、6)和B表里面的(2、3、4 、5、6、7)
用(innerjoin)连接来获取同等的值或者说是相等的值(2、3、4、5、6)进行连接。
2. 左连接(left join)也是像集合数组那样。左连接(left join)就如同A里面有六个数字分别为:(1、2、3、4、5、6 ), B里面有六个数字分别为:(2、3、 5、6、7、8 ),分别求出A、和B、两个间的交集 。并集的意思就是说把A、和B、里面相同的数据只显示一遍提取出来放到一块去合并,(2、3、5、6)这个就是并集。
同理左连接(left join)也是像高中数学中的交集,我们查询的数据得分是通过表与表之间的主键和外键拉连接。如下图为例子
在这里插入图片描述
A表和B表为要查询的表,A、主键为某个表的主键, B、外键为另外一个表和A表主键有关联的表进行连接,要从A表和B表中数据连接把相等的数据找出来连接A表里面的(1、2、3、4、5、6)和B表里面的( 2、3、 5、6、7、8 )用(left join)连接来获取同等的值或者说是相等的值只显示一遍提取出来放到一块去合并(1、2、3、4、5、6、7、8)进行连接。与此不同的是在查询中就是以左边A为主右边B为辅,A有就显示B 没有就用null补上,侧反之。
3. 右连接(right join)也是像集合数组一样。右连接(right join)就如同A里面有四个数字分别为:(2、3、5、6 ), B里面有六个数字分别为:(2、3、 5、6、7、8 ),分别求出A、和B、两个间的并集 。并集的意思就是说把A、和B、里面相同的数据只显示一遍提取出来放到一块去合并,(2、3、5、6、7、8)这个就是并集。
同理右连接(right join)也是像高中数学中的交集,我们查询的数据得分是通过表与表之间的主键和外键拉连接。如下图为例子
在这里插入图片描述
A表和B表为要查询的表,A、主键为某个表的主键, B、外键为另外一个表和A表主键有关联的表进行连接,要从A表和B表中数据连接把相等的数据找出来连接A表里面的(2、3、5、6)B表里面的( 2、3、 5、6、7、8 )用(right join)连接来获取同等的值或者说是相等的值只显示一遍提取出来放到一块去合并(2、3、5、6、7、8)进行连接。与此不同的是在查询中就是以右边B为主右边A为辅,A有就显示B 没有就用null补上,侧反之。
4. 外连接(outer join)也是像我们以前学的数学中的交集那样,我们查询的数据得分是通过表与表之间的主键和外键拉连接。如下图例子
在这里插入图片描述
A表和B表为要查询的表,A、主键为某个表的主键, B、外键为另外一个表和A表主键有关联的表进行连接,要从A表和B表中数据连接把相等的数据找出来连接A表里面的(1、2、3、4、5、6)和B表里面的( 2、3、 5、6、7、8 )用(left join)连接来获取同等的值或者说是相等的值只显示一遍提取出来放到一块去合并(1、2、3、4、5、6、7、8)进行连接。与此不同的是在查询中A和B 两个为互补形。

SQL中的连接(Join)用于将两个或多个表中的数据关联起来,以便于查询数据。常见的连接类型包括左连接、右连接内连接和外连接。 1. 左连接(Left Join):左连接返回左表中所有的数据记录,以及右表中所有和左表匹配的数据记录。如果右表中没有匹配的数据记录,则返回 NULL。左连接使用 "LEFT JOIN" 或 "LEFT OUTER JOIN" 关键字实现。 2. 右连接(Right Join):右连接返回右表中所有的数据记录,以及左表中所有和右表匹配的数据记录。如果左表中没有匹配的数据记录,则返回 NULL。右连接使用 "RIGHT JOIN" 或 "RIGHT OUTER JOIN" 关键字实现。 3. 内连接(Inner Join):内连接只返回左右两表中都匹配的数据记录。内连接使用 "INNER JOIN" 或 "JOIN" 关键字实现。 4. 外连接(Outer Join):外连接分为左外连接和右外连接,左外连接返回左表中所有的数据记录,以及右表中所有和左表匹配的数据记录,如果右表中没有匹配的数据记录,则返回 NULL;右外连接返回右表中所有的数据记录,以及左表中所有和右表匹配的数据记录,如果左表中没有匹配的数据记录,则返回 NULL。外连接使用 "FULL OUTER JOIN" 或 "FULL JOIN" 关键字实现。 示例代码: ```sql -- 左连接 SELECT * FROM table1 LEFT JOIN table2 ON table1.column = table2.column; -- 右连接 SELECT * FROM table1 RIGHT JOIN table2 ON table1.column = table2.column; -- 内连接 SELECT * FROM table1 INNER JOIN table2 ON table1.column = table2.column; -- 左外连接 SELECT * FROM table1 LEFT OUTER JOIN table2 ON table1.column = table2.column; -- 右外连接 SELECT * FROM table1 RIGHT OUTER JOIN table2 ON table1.column = table2.column; -- 全外连接 SELECT * FROM table1 FULL OUTER JOIN table2 ON table1.column = table2.column; ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值