一、引言
前面的博客已经全部学习完了关于多表查询。接下来对多表查询进行一个小结。
(1)多表查询主要是讲了两个方面
- 多表关系
(不管业务关系如何的复杂,最终多表的关系基本上可以分为三类)
"一对多"、"多对多" 以及 "一对一" 。
注意:
1、一对多的关联关系中,一般在 "多" 的一方建立外键来关联 "一"的一方的主键。
(员工和部门)
2、多对多的关系中,需要建立中间表来维护多表之间的关系。所以在中间表之中至少包含两个外键,来关联另外两张表的主键。(学生和课程)
3、一对一的关系中,表结构的拆解(自己拆解自己)。在任意一方加入外键,关联另外一方的主键,并且设置外键为唯一的(UNIQUE)。这个又好像和一对多比较像,所以此时为了限定它们之间是一对一的关系,则需要在外键上再添加一个唯一约束,从而保证它们是一对一的关系。(用户和用户详细)
- 多表查询
多表查询所涉及的查询形式有以下4种:
注意:
1、内连接。查询的是表A和表B交集部分的数据。分为隐式内连接和显示内连接。注意语法格式。
2、外连接。会完全包含左边或右边表的数据,取决于左外或者右外。当然也包含交集部分的数据。注意语法格式。
3、自连接。其实实际上是对某一张表连接查询了多次。用到自连接就必须给表起别名。
4、子查询。指外层的SQL语句中又嵌套了一个 SELECT 语句(内层的这个查询就称为子查询)。又根据子查询返回的结果进行分类。子查询出现的位置可以出现在 WHERE 之后、FROM 之后,更可以出现在 SELECT 之后。
这是本部分学习——关于多表查询的所有内容。