数据库中的连接join分为内连接、自然连接、外连接,外连接又分为左外连接、右外连接、全外连接(注意:mysql不支持全外连接)
首先,我们先来建两张表,第一张表命名为kemu,第二张表命名为score:
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
结果集:
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 table2 values(‘3’ , ‘4’ , ‘5’);
insert into table2 values(‘8’ , ‘9’ , ‘1’);
- 自然连接(natural join)
自然连接是一种特殊的等值连接,他要求两个关系表中进行连接的必须是相同的属性列(名字相同),无须添加连接条件,并且在结果中消除重复的属性列。
Select * from table1 natural join table2;
结果:
- 内连接(inner join ,inner可省略 )
内连接基本与自然连接相同,不同之处在于自然连接的是同名属性列的连接,而内连接则不要求两属性列同名,可以用using或on来指定某两列字段相同的连接条件。
Select * from table1 inner join table2 on table1.A=table2.E;
然连接时某些属性值不同则会导致这些数据会被舍弃,那如何保存这些会被丢失的信息呢,外连接就解决了相应的问题。外连接分为左外连接、右外连接、全外连接。外连接必须用using或on指定连接条件。
Select * from table1 left join table2 on table1.C=table2.C
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 数据可视化,数据挖掘,面试题讲解
----转自某乎
今天的文章 mysql 自然连接、内连接、外连接的区别分享到此就结束了,感谢您的阅读。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/bian-cheng-ji-chu/88954.html