【SQL基础】关系模型 —— 外键

外键(FOREIGN KEY)


- 描述

通过一个表中的指定字段,可以把数据与另一个张表关联起来,这种列成为外键

实例

Person表
【SQL基础】关系模型 —— 外键_第1张图片
Orders表
【SQL基础】关系模型 —— 外键_第2张图片
Orders表中的pP_Id列指向Persons表中的P_Id列
Persons表中的P_Id列是Persons表中的主键
Oreders表中的P_Id列是Orders表中的外键

- 作用

外键约束用于预防破坏表之间连接的行为

外键约束能预防非法数据插入外键列,因为它必须是它指向的那个表中的值之一

- 多对多

通过一个表的外键关联到另一个表,可以定义出一对多关系或多对多关系

实例

一个老师可以对应多个班级,一个班级也可以对应多个老师,因为,班级表和老师表存在多对多关系

多对多关系实际上是通过两个一对多关系实现的,即通过一个中间表,关联两个一对多关系,就形成多对多关系

teacher表
【SQL基础】关系模型 —— 外键_第3张图片
classes表
【SQL基础】关系模型 —— 外键_第4张图片
中间表teacher_class关联两个一对多关系
【SQL基础】关系模型 —— 外键_第5张图片
通过中间表teacher_class可知

id=1的张老师对应id=1,2的一班和二班
id=2的王老师对应id=1,2的一班和二班
id=3的李老师对应id=1的一班
id=4的赵老师对应id=2的二班

同理可知classes到teachers的关系

id=1的一班对应id=1,2,3的张老师、王老师和李老师
id=2的二班对应id=1,2,4的张老师、王老师和赵老师

一对一

一对一关系是指,一个表的记录对应到另一个表的唯一一个记录

将students表的每个学生的联系方式存入另一个表contacts
【SQL基础】关系模型 —— 外键_第6张图片
有时将一个大表拆成两个一对一的表,目的是把经常读取和不经常读取字段分开,以获得更高的性能。

你可能感兴趣的:(SQL)