数据库之间的连接关系(内连接、外连接、左连接、右连接)

前言

在此之前,有过关于数据库之间的连接关系的学习,那是在准备数据库考试的时候所接触的,但是也只是基于理论的学习,并没有进行实践。这几天在做项目的时候,需要用到这部分的内容,这正是一个好的锻炼机会,借此机会,深入的学习一下!

过程介绍

首先说一下数据库之间的这几种连接关系:

(1)内连接:百度百科中对“内连接”的解释

个人的简单的理解:不保留不相等的行,如果两个表中,左右有相等的就连接,不相等的都去掉,后面有具体的示例解析。

(2)外连接:百度百科中对其作出的解释

个人的理解:左连接和右连接都属于外连接的一种:

左连接:保留左边全部行,按照左边顺序和右边比较是否相等,相等就连成一行

右连接:保留右边全部行,按照右边顺序和左边比较是否相等,相等就连成一行

(3)对这几种连接的解释示例:
两个数据库:学生表(student)和成绩表(score)
在这里插入图片描述在这里插入图片描述
①将两个表进行内连接:

SELECT * FROM `student` inner join score on score.s_id=student.s_id

效果图:
在这里插入图片描述
②将两个表进行左连接(将学生表左外连接成绩表):

SELECT * FROM student left join score on score.s_id=student.s_id

效果图:
在这里插入图片描述
成绩表左外连接学生表:

SELECT * FROM score left join student on score.s_id=student.s_id

效果图:
在这里插入图片描述
③学生表右外连接成绩表:

SELECT * FROM student right join score on score.s_id=student.s_id

效果图:
在这里插入图片描述
成绩表右外连接学生表:

SELECT * FROM score right join student on score.s_id=student.s_id

效果图:
在这里插入图片描述
④学生表全外连接成绩表:结果就是左外连接和右外连接进行合并的表,在这就不进行演示了

select *from student full  JOIN score ON student.s_id=score.s_id

⑤笛卡尔积:

select * from student cross join score

效果图:
在这里插入图片描述
小结

在经过了这一次的实践之后,完全明白了数据库之间的这几种连接,不论是在理论上,还是在实践中,我对这几种连接进行了对比,比如:同样是左连接,如果是学生表左连接成绩表是什么样的结果?反之,如果是成绩表左连接学生表又会是什么样的结果?两种结果是否一样?果然是实践出真知,事实证明这两种结果是不同的,自己对这一部分的内容完全掌握了,真的挺开心的,就是花费了比较多的时间,还是比较值得的,如果您有更好的理解,请在评论区进行评论,大家互相学习、交流!!!

发布了140 篇原创文章 · 获赞 106 · 访问量 19万+

猜你喜欢

转载自blog.csdn.net/tigaobansongjiahuan8/article/details/102673173