mysql 自然连接、内连接、外连接的区别

article/2025/10/12 16:37:49

数据库中的连接join分为内连接、自然连接、外连接,外连接又分为左外连接、右外连接、全外连接(注意:mysql不支持全外连接)

首先,我们先来建两张表,第一张表命名为kemu,第二张表命名为score:

在这里插入图片描述
在这里插入图片描述

一、left join
顾名思义,就是“左连接”,表1左连接表2,以左为主,表示以表1为主,关联上表2的数据,查出来的结果显示左边的所有数据,然后右边显示的是和左边有交集部分的数据。如下:

select
*
from
kemu
left join score on kemu.id = score.id
结果集:
在这里插入图片描述

在这里插入图片描述

二、right join

“右连接”,表1右连接表2,以右为主,表示以表2为主,关联查询表1的数据,查出表2所有数据以及表1和表2有交集的数据,如下:

select
*
from
kemu
right join score on kemu.id = score.id
结果集:
在这里插入图片描述

在这里插入图片描述

三、join
join,其实就是“inner join”,为了简写才写成join,两个是表示一个的,内连接,表示以两个表的交集为主,查出来是两个表有交集的部分,其余没有关联就不额外显示出来,这个用的情况也是挺多的,如下

select
*
from
kemu
join score on kemu.id = score.id
结果集:

在这里插入图片描述

在这里插入图片描述

以上就是三种连接的区别!

内外联结练习代码题
CREATE TABLE table1(
a VARCHAR(20),
b VARCHAR(20) NOT NULL DEFAULT ‘’,
c VARCHAR(20) NOT NULL DEFAULT ‘’,
PRIMARY KEY(a)
);

CREATE TABLE table2(
c VARCHAR(20),
d VARCHAR(20) NOT NULL DEFAULT ‘’,
e VARCHAR(20) NOT NULL DEFAULT ‘’
);

insert into table1 values(‘1’ , ‘2’ , ‘3’);
insert into table1 values(‘5’ , ‘6’ , ‘7’);

insert into table2 values(‘3’ , ‘4’ , ‘5’);
insert into table2 values(‘8’ , ‘9’ , ‘1’);
在这里插入图片描述

  1. 自然连接(natural join)
    自然连接是一种特殊的等值连接,他要求两个关系表中进行连接的必须是相同的属性列(名字相同),无须添加连接条件,并且在结果中消除重复的属性列。

Select * from table1 natural join table2;
结果:

  1. 内连接(inner join ,inner可省略 )
    内连接基本与自然连接相同,不同之处在于自然连接的是同名属性列的连接,而内连接则不要求两属性列同名,可以用using或on来指定某两列字段相同的连接条件。

Select * from table1 inner join table2 on table1.A=table2.E;

然连接时某些属性值不同则会导致这些数据会被舍弃,那如何保存这些会被丢失的信息呢,外连接就解决了相应的问题。外连接分为左外连接、右外连接、全外连接。外连接必须用using或on指定连接条件。
在这里插入图片描述

3.1左外连接(left outer join,outer可以省略)
左外连接是在两表进行自然连接,只把左表保留在结果集中,右表对应的列上填null。

Select * from table1 left join table2 on table1.C=table2.C
在这里插入图片描述

3.2右外连接(rignt outer join,outer可以省略)
右外连接是在两表进行自然连接,只把右表要舍弃的保留在结果集中,左表对应的列上填null。

Select * from table1 right outer join table2 on table1.C=table2.C
结果:
在这里插入图片描述

3.3全外连接(full outer join 其中outer可以省略 )(mysql不⽀持)

全外连接是在两表进⾏⾃然连接,把左表和右表都保留在结果集中,相对应的列上填null。

结果:

Select * from table1 right outer join table2 on table1.C=table2.C
Select * from table1 full join table2 on table1.C=table2.C;
– mysql的全外连接可以使⽤union关键字将左连接和右链接的结果合并

Select * from table1 left outer join table2 on table1.C=table2.C
UNION
Select * from table1 right outer join table2 on table1.C=table2.C;
在这里插入图片描述

全方位构建数据挖掘能力,热门行业真实项目实操,数十个实战案例,内容包括 Tableau PowerBI Python SQL HIVE Hadoop SPSS 数据可视化,数据挖掘,面试题讲解

----转自某乎


http://chatgpt.dhexx.cn/article/sdRydXDs.shtml

相关文章

内连接与外连接的区别

有两个表A和表B。表A结构如下:Aid:int;标识种子,主键,自增IDAname:varchar数据情况,即用select * from A出来的记录情况如下图1所示:图1:A表数据表B结构如下:Bid&#xf…

内连接、左外连接与右外连接的区别及作用介绍

SQL语句当中比较难的部分就有今天要给朋友们分享的这个,inner join, left join 和 right join他们三个的作用以及区别是什么。 顺便也会把交叉连接一起分享了。 上面会分享一些基本的语法与使用,下方会详细介绍 1)交叉连接,又称笛…

图解数据库左连接、右连接、内连接、外连接、全连接的区别

数据库连表方式 内连接 :inner 、inner join外连接 :outer join 左外连接 :left outer join左连接 :left join右外连接 right outer join右连接: right join 全连接 full join 、union 准备 现在有2张表&#xff0c…

内链接和外连接的区别

内连接,也被称为自然连接,只有两个表相匹配的行才能在结果集中出现。返回的结果集选取了两个表中所有相匹配的数据,舍弃了不匹配的数据。由于内连接是从结果表中删除与其他连接表中没有匹配的所有行,所以内连接可能会造成信息的丢…

数据库的内连接和外连接的区别

内连接:指连接结果仅包含符合连接条件的行,参与连接的两个表都应该符合连接条件。 外连接:连接结果不仅包含符合连接条件的行同时也包含自身不符合条件的行。包括左外连接、右外连接和全外连接。 左外连接:左边表数据行全部保留…

内连接和外连接区别

在之前,我对MSSQL中的内连接和外连接所得出的数据集不是很清楚。这几天重新温习了一下SQL的书本,现在的思路应该是很清楚了,现在把自己的理解发出来给大家温习下。希望和我一样对SQL的连接语句不太理解的朋友能够有所帮助。(发这么…

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

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

左右连接和内连接的区别

首先,我这有两个表,里面的数据去这样的: 表和数据准备好了,接下来进行操作: (1)先说左连接查询: 左连接:在 LEFT JOIN 左边的表里面数据全被全部查出来,右边的…

内连接和外连接

内连接和外连接都是表的连接方式(将两张表连接起来) 内连接inner join 外连接:左连接 left join,右连接 right join 1.笛卡尔积 表一和表二做笛卡尔积,就是将表一的每一行和表二的每一行进行拼接 所有的这些连接…

数据库-内连接与外连接的区别(举例说明)

内连接,也被称为自然连接,只有两个表相匹配的行才能在结果集中出现。返回的结果集选取了两个表中所有相匹配的数据,舍弃了不匹配的数据。由于内连接是从结果表中删除与其他连接表中没有匹配的所有行,所以内连接可能会造成信息的丢…

内连接与外链接的区别

我们要实习了,实习面试过了,但是由于考试原因经理让我在学校巩固一些SQL知识。于是我就开始了,做题之旅,一天做几个巩固一下,好久没做了,刚做就来问题了。外链接与内连接我居然不知道他们之间的原理&#x…

内连接和外连接的区别--举例

内连接是保证两个表中所有行都满足连接条件,而外连接不仅包含符合连接条件的行,还包含左表、右表或两个边接表中的所有数据行。 内连接:指连接结果仅包含符合连接条件的行,参与连接的两个表都应该符合连接条件。 外连接&#xf…

内连接、外连接的区别及作用

1.基本介绍 不管是内连接、外连接还是带where子句的多表查询,都组合自多个表,并生成结果表。 1.内连接:只返回两个表中连接字段相等的行。inner join(等值连接) 只返回两个表中联结字段相等的数据 2.左外连接(也称左连接&#x…

GitHub下载指定文件夹的方法(简单快捷)

GitHub下载指定文件夹的快捷方法 GitHub上默认是无法下载指定的文件夹,然而有时候我们只需要下载其中一个文件夹的内容,比如下图中的GAN: 可以复制该文件夹的链接: 然后在该网站上即可下载到所需的文件:

如何移动下载文件夹到另一个盘?

下载文件夹占用了越来越多的C盘可用空间?本教程将教你如何安全易行地将下载文件夹移动到其他驱动器,以便你可以释放更多的C盘空间。 关于下载文件夹 从网站下载程序后它们会被存储在哪里?一般来说,当你从互联…

文件下载a

文章目录 1、单个文件选择路径下载2、多个文件打包成zip,选择路径下载3、打包下载选中的文件和文件夹只通过前端就下载文件(网络URL)设置下载文件的名称补充 前端代码一个a标签,href就是要访问的controller的路径,以下…

GitHub 下载单个文件/文件夹

来源: github下载单个文件和目录_哔哩哔哩_bilibilihttps://www.bilibili.com/video/BV1rL411K7Mx?spm_id_from333.880.my_history.page.click 步骤: 下单个文件: 1.首先你给有途径访问到github 2.在浏览器(Edge)扩…

Tabby sftp 下载文件夹

目录 Tabby介绍 下载文件夹 Tabby介绍 Tabby是一个基于 TypeScript 开发的终端模拟器,适用于 Windows,macOS 和 Linux。 可使用SSH、SFTP连接本地和服务器。 下载文件夹 下载文件直接选择本地编辑即可,但是不支持直接操作文件目录&#…

在GitHub 上下载指定的文件夹的两种方法

一、下载所有文件 首先介绍下如果你要下载GitHub下所有的项目文件的话,可以点击其主页下的Clone or download下的Download Zip ,可以直接下载到本地电脑;或者复制其链接,如下 然后再打开Git Bash,前提是你需要电脑已经下载安装好了Git,不会看我上篇安装Git文章。

【google drive 下载整个文件夹】

google drive 下载整个文件夹失败,提示 "try enable third party cookies" refs方法 refs https://support.google.com/drive/answer/2423534?hlen#zippy%2Cblocked-third-party-cookies-can-prevent-drive-web-downloads 方法 在谷歌浏览器地址栏输入…