2.完整性约束
2025年09月21日
2.完整性约束
数据库中的数据表在定义的时候要规定每个字段的名称、类型、宽度等信息。在向数据表插入数据的时候,要满足约束条件。需要满足的完整性约束一般有3种:域约束、主键约束、外键约束。域约束和主键约束只涉及单个表,外键约束涉及多个表。
(1)域约束
域约束就是规定一个表的字段允许的数据类型,如整型、浮点型、字符串等。在标准数据类型的取值范围上,可以附加更小的范围约束,如表2.14.3中的grade值就必须大于或等于0且小于或等于100。
有些字段是允许为空(null)的,空值是数据库中的特殊值,表示未知或不确定,如表2.14.1中的dept就可以为空。
(2)主键约束
在表中,可以用一个字段或者若干个字段唯一确定一条记录,这一个字段或者若干个字段就称为主键。主键不允许为空,不可以重复的。例如,表2.14.1中的sno就是主键,表2.14.2中课程的cno是主键。
(3)外键约束
若一个表中的某个字段(或者字段组合)不是该表的主键,却是另一个表的主键,则称这样的字段为该表的外键。外键是表与表之间的纽带。例如,在表2.14.3中,sno不是成绩表的主键,但是是学生表的主键,所以sno就是成绩表的外键,通过sno可以使成绩表和学生表建立联系。在成绩表中插入的记录中,所有的sno都必须是学生表中存在的值。
在表定义的时候,一般都要给出表的域约束和主键约束。在插入具体数据的时候,要符合以上3种约束。