可以在数据库图表中的表之间创建关系,以显示一个表中的列与另一个表中的列是如何相链接的。

在一个关系型数据库中,利用关系可以避免多余的数据。

一、表与表之间关系概述

1.1、什么是表与表之间关系

在关系型数据库中,为了避免数据冗余,我们的一些表与表之间肯定是有一定的关系。

如:学生表与老师表,部门表与员工表,用户表与权限表等。

在表设计的时候,就应该体现出来表与表之间的这种关系。

1.2、表与表之间关系分类

1.2.1、一对多关系

一对多关系是最普通的一种关系。在这种关系中,A 表中的一行可以匹配 B 表中的多行,但是 B 表中的一行只能匹配 A 表中的一行。

只有当一个相关列是一个主键或具有唯一约束时,才能创建一对多关系。

注意:

一对多的创建原则:

主外键关连

1.2.2、一对一关系

在一对一关系中,A 表中的一行最多只能匹配于 B 表中的一行,反之亦然。如果相关列都是主键或都具有唯一约束,则可以创建一对一关系。

注意:

一对一的创建原则:

外键唯一:主表的主键和从表的外键(唯一),形成主外键关系,外键唯一 UNIQUE

外键是主键:主表的主键和从表的主键,形成主外键关系

1.2.3、多对多关系

在多对多关系中,A 表中的一行可以匹配 B 表中的多行,反之亦然。要创建这种关系,需要定义第三个表,称为结合表,它的主键由 A 表和 B 表的外部键组成。

注意:

多对多的创建原则:

二个表与中间表创建1对多的关系。

2、一对多应用

创建一对多关系:主外键关连

新华出版社(Python爬虫、Linux)

海燕出版社(操作系统、数学)

摆渡出版社(英语、网页设计)

大众出版社()

案例:

这是一个书和出版社的一个例子,书要关联出版社(多个书可以是一个出版社,一个出版社也可以有好多书)。

表的创建

#出版社表(被关联表)

create table press(

id int primary key auto_increment,

na