ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
[TOC] ### 关系数据库——数据完整性 #### 一、物理表间关系 1、表间关系的含义: 同一个关系数据库当中的不同表中的数据之间存在一种关系,这种关系将数据库里各表中的每条数据记录都和数据库中唯一的主题相联系,从而使得对每一个数据的操作都成为对数据库的整体操作。 2、表间关系的类型: * 一对一 * 一对多 * 多对多 3、建立表间关系的目的: * 保证数据的完整性 -> 表间关系的建立使主表和从表之间建立数据约束关系,防止输入错误的数据; * 保证数据的一致性 -> 当存在多个表的时候,通过建立主表和从表的关系,可以在主表更新时,从表自动更新,省去手动更新; * 方便多表查询 -> 方便连接两个或多个表,一次就能够查找到多个相关数据。 #### 二、主外键物理表 在第3章里我们介绍了主键的设置和选择,为了建立表间关系,还需要在子表里设置外键。 1、外键的作用 外键通过引用另外一个数据表记录的主键字段,在两个表之间建立联系。 外键是子表里的一个字段,引用父表(主表)里的主键。 要求: * 外键列类型尽可能与主键列类型保持一致 * 外键列应该加上 NOT NULL 2、外键约束 外键约束是确保表与表之间引用完整性的主要机制。 #### 三、主外键物理表的数据插入、删除和更新规则 主表和从表里的数据在插入删除时,要遵循以下规则: (1)当主表中没有对应的记录时,不能将记录添加到子表; 上面的例子里学员成绩表 score 中不能出现在学员信息表 student 中不存在的学号。 (2)不能更改主表中的值而导致子表中的记录孤立; 把 student 表中的学号改变了,score 表中的学号也应当随之改变。 (3)子表存在与主表对应的记录,不能从主表中删除该行 ; 不能把有成绩的学员删除了。 (4)删除主表前,先删子表; 先删除学员成绩表 score、后删除学员信息表 student。