一、前言
在前几篇文章中介绍的数据查询都是单表查询,从本文开始将讲述多表查询。在开始讲述多表查询之前,先讲述一下多表关系已经多表查询的相关概念,有助于后面理解。
二、多表关系
1.一对多(多对一)
- 很常见的例子就是部门与员工的关系:一个部门有很多员工,但是一个员工对应的只有唯一的一个部门
- 我们想要在数据库层面体现这种关系,就要在多的一方建立外键,指向一的一方的主键;所以我们把外键建立在员工表上,并指向部门表,让两个表产生联系
2.多对多
- 很常见的例子就是学生与课程的关系:一个学生可以选修很多课,一门课也可以有很多学生去选择
- 我们要想在数据库的层面上体现这种关系,就要建立第三张中间表,中间表至少包含两个外键,分别关联两方主键
- 在DG软件中我们如果实验一下,并查看关系可以得到如下结果
3.一对一关系
- 很常见的例子就是用户与用户详情的关系
- 我们要想在数据库的层面上体现这种关系,就要将单表拆分,将一张表的基础字段放在一张表中,其它详情字段放在另一张表中,来提升效率
- 然后在任意一方加入外键,关联另一方的主键,并设置外键唯一(UNIQUE),这样才能保证是一对一的关系
三、多表查询
1.概述
- 从多张表中查询数据
- 在笛卡儿积中要寻找属性值相同的
2.分类
- 内连接:查询A、B交集部分数据
- 左外连接:查询左表以及两表交集部分数据
- 右外连接:查询右表以及两表交集部分数据
- 自连接:当前表与自身的连接查询,必须用表别名
- 子查询
四、结语
本文只是讲述了多表查询的一些基础概念,接下来会展开详细讲述