前言
在此之前,有过关于数据库之间的连接关系的学习,那是在准备数据库考试的时候所接触的,但是也只是基于理论的学习,并没有进行实践。这几天在做项目的时候,需要用到这部分的内容,这正是一个好的锻炼机会,借此机会,深入的学习一下!
过程介绍
首先说一下数据库之间的这几种连接关系:
(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
效果图:
小结
在经过了这一次的实践之后,完全明白了数据库之间的这几种连接,不论是在理论上,还是在实践中,我对这几种连接进行了对比,比如:同样是左连接,如果是学生表左连接成绩表是什么样的结果?反之,如果是成绩表左连接学生表又会是什么样的结果?两种结果是否一样?果然是实践出真知,事实证明这两种结果是不同的,自己对这一部分的内容完全掌握了,真的挺开心的,就是花费了比较多的时间,还是比较值得的,如果您有更好的理解,请在评论区进行评论,大家互相学习、交流!!!