首页 > 编程知识 正文

数据库的完整性约束,主键和外键的关系

时间:2023-05-03 23:16:01 阅读:44721 作者:40

1 :什么是主键

在一个表中,用于唯一标识一个记录的字段集称为主键或主键,简称主键(或主键)。 此处的“字段集”是因为主键可能由一个或多个字段表示。 请看一个例子:

学生表(学校编号、姓名、性别、专业编号),这里的主键是学校编号,一个学校编号id可以唯一识别一个学生的信息。 另一个表:学生选择列表(学校编号、课程编号、成绩)。 这里)学校号、课程号) )是主键。 一个学校号) (即一个学生)可以选择多个课程,因此一个课程号) (即一个课程可以由多个学生选择。 一个字段不能识别一个学生选择的信息记录。 (学校编号、课程编号) )。

2 )什么是外键?

一个表的非主属性,另一个表的主属性是该表的外键。 这里有学生表(学号、姓名、性别、专业号码)、专业信息表)、专业名称、专业备注信息) 2个。 学生表的主键是学校号,专业信息表的主键是专业号。 学生表非主属性的专业编号是专业信息表的主键。 我们把这个专业号码称为学生表的外键。 因此,一个表的非主属性是另一个表的主属性,而非主属性是外键。

概念定义:什么是父表和子表?

如果有两个表a和表b,表a的一个字段id是外键,表b的一个字段id是主键,则称b为父表,称a为子表。 就是说一个表中的外键字段(相当于这里的a表)是另一个表中(相当于这里的b表)的主键。 还是请举例理解上面的两个表。 学生表(学校编号、姓名、性别、专业编号)、专业信息表(专业编号、专业名称、专业备注信息)。 这里学生表是子表,专业信息表是父表。

设置表外键的作用是与父表建立关系。 例如,如果删除专业信息表中某个专业编号的id为“1001”且此id,则学生表中的专业编号id为“1001”的记录也会被删除。 它的目的是保证桌子的完整性。

数据库的三个约束

1 .实体完整性约束是指主键不能为null。 如果主键为null,该如何唯一标识记录呢?

2 .引用作为外键约束的完整性约束,并且外键的值必须存在于引用的主键字段中。 例如,学生表的专业编号属性的值必须全部存储在专业信息表的专业编号属性中。 仔细想想,就会明白一个学生(大学生)为什么属于不存在的专业。

3 .用户定义的一致性约束是指一些用户自己设置的约束,例如,字段是否可以为空或字段值可能的范围(例如,人的性别只能取男性或女性)。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。