第6章 多表查询 -【千锋教育】MySQL数据库从入门到精通
2023-03-21
|
46页
|
136人阅读
|
0人下载
教辅
内容正文:
表与表之间的关系
合并结果集
第6章 多表查询
连接查询
子查询
表与表之间的关系
合并结果集
连接查询
☞点击查看本小节知识架构
6.2
6.3
6.1
☞点击查看本小节知识架构
☞点击查看本小节知识架构
子查询
6.4
☞点击查看本小节知识架构
学习目标
理解
掌握
掌握
掌握
理解表与表之间的关系
1
掌握子查询
4
2
掌握合并结果集
3
掌握连接查询
销售额 掌握知识 理解知识 熟悉知识 了解知识 2.5 2.5 2.5 2.5
6.1 表与表之间的关系
返回目录
6.1.1
一对一
6.1.2
一对多和多对一
6.1.3
多对多
6.1 表与表之间的关系
在讲解多表查询之前,首先要了解表与表之间的关系以及如何设计这种关系,这对以后的多表操作的学习有很大帮助。表与表之间的关系主要包括一对一、一对多(多对一)和多对多,其中一对多和多对一实际上是一样的,只是角度不同,接下来详细讲解表与表之间的关系。
6.1 表与表之间的关系
6.1.1一对一
在一对一关系中,关系表的每一边都只能存在一条记录,每个数据表中的关键字在对应的关系表中只能存在一条记录或者没有对应的记录。这种关系类似于现实生活中配偶的关系,如果一个人已经结婚,那么只有一个配偶,如果没有结婚,那么没有配偶。为了加深理解,接下来通过具体案例演示一对一的关系。
首先创建用户user表。
6.1 表与表之间的关系
6.1.1一对一
以上执行结果证明表user创建完成。然后创建user_text表。
以上执行结果证明user_text表创建完成。接下来通过图示来直观地了解两张表的关系,如图所示。
6.1 表与表之间的关系
6.1.1一对一
从图中可以看到,user表和user_text表是一对一的关系。此处使用一对一的意义实际上是数据库优化,用户备注的字段utext一般有比较多的文字,属于大文本字段,但这个字段又不是每次都要用到,如果存放到user表中,在查询用户数据的时候会影响user表的查询效率,因此将utext字段单独拆分出来,放到从表当中,当需要utext字段时,进行两张表的关联查询即可。
6.1 表与表之间的关系
6.1.2 一对多和多对一
在一对多关系中,主键数据表中只能含有一个记录,而在其关系表中这条记录可以与一个或者多个记录相关,也可以没有记录与之相关。这种关系类似于现实生活中父母与子女的关系,每个孩子都有一个父亲,但一个父亲可能有多个孩子,也可能没有孩子。多对一是从不同角度来看问题,例如从孩子的角度来看,一个孩子只能有一个父亲,多个孩子也可能是同一个父亲。
本小节针对一对多讲解,为了加深理解,接下来通过具体案例演示一对多的关系。首先需要创建学生student表。
6.1 表与表之间的关系
6.1.2 一对多和多对一
以上执行结果证明student表创建完成。然后创建score表。
以上执行结果证明score表创建完成。接下来通过图示来直观地了解两张表的关系,如图所示。
6.1 表与表之间的关系
6.1.2 一对多和多对一
从图中可以看到,student表与score表是一对多的关系,每个学生可能有多个成绩,但一个成绩只能属于一个学生,这就是一对多的关系。如果从score表来看问题,多个成绩可以属于一个学生,但一个成绩不能属于多个学生,这就是多对一的关系。
6.1 表与表之间的关系
6.1.3 多对多
在多对多关系中,两个数据表里的每条记录都可以和另一个数据表里任意数量的记录相关。这种关系类似于现实生活中学生与选修课的关系,一个学生可以选择多门选修课,一门选修课也可以供多个学生选择。
为了加深理解,接下来通过具体案例演示多对多的关系。
首先创建教师teacher表。
6.1 表与表之间的关系
6.1.3 多对多
以上执行结果证明表teacher创建完成。然后创建stu表。
以上执行结果证明stu表创建完成。最后还需要创建一张关系表tea_stu,用于映射多对多的关系,下面创建tea_stu表。
6.1 表与表之间的关系
6.1.3 多对多
以上执行结果证明tea_stu表创建完成。接下来通过图示来直观地理解3张表的关系,如图所示。
从图中可以看到,teacher表和stu表都与中间表tea_stu关联,且都是一对多的关系,因此teacher表和stu表是多对多的关系,即一个老师可以有多个学生,一个学生也可以有多个老师,这就是多对多关系的应用场景。
6.2 合并结果集
返回目录
6.2.1
使用UNION关键字合并
6.2.2
使用UNION ALL关键字合并
6.2 合并结果集
6.2.1 使用UNION关键字合并
在多表查询中,有时可能需要将两条查询语句的结果合并到一起,MySQL提供了UNION关键字用于合并结果集。
创建测试表test1和测试
由于学科网是一个信息分享及获取的平台,不确保部分用户上传资料的 来源及知识产权归属。如您发现相关资料侵犯您的合法权益,请联系学科网,我们核实后将及时进行处理。