一起聊聊MySQL基础之连接查询

本篇文章给大家带来了关于mysql中连接查询的相关知识,其中包括内连接、外连接、多表连接以及子查询的相关问题,希望对大家有帮助。 再次认识关系表 我们之前一直使用 student_inf

    本篇文章给大家带来了关于mysql中连接查询的相关知识,其中包括内连接、外连接、多表连接以及子查询的相关问题,希望对大家有帮助。

再次认识关系表

我们之前一直使用student_info和student_score两个表来分别存储学生的基本信息和学生的成绩信息,其实合并成一张表也不是不可以,假设将两张表合并后的新表名称为student_merge,那它应该长这样:

student_merge表

问题一:浪费存储空间。

问题二:当修改某个学生的基本信息时必须修改多处,很容易造成信息的不一致,增大维护的困难。

所以为了尽可能少的存储冗余信息,一开始我们就把这个所谓的student_merge表拆分成了student_info和student_score表,但是这两张表之间有某种关系作为纽带,这里的某种关系指的就是两个表都拥有的number列。

连接的概念

拆分之后的表的确解决了数据冗余问题,但是查询数据却成了一个问题。截至目前为止,在我们介绍的查询方式中,查询结果集只能是一个表中的一个列或者多个列,也就是说到目前为止还没有一种可以在一条查询语句中把某个学生的number、name、major、subject、score这几个信息都查询出来的方式。

小贴士: 虽然我们前边介绍的子查询可以在一个查询语句中涉及到多个表,但是整个查询语句最终产生的结果集还是用来展示外层查询的结果,子查询的结果只是被当作中间结果来使用。

时代在召唤一种可以在一个查询语句结果集中展示多个表的信息的方式,连接查询承担了这个艰巨的历史使命。当然,为了故事的顺利发展,我们先建立两个简单的表并给它们填充一点数据: