一 完整性包括:
1. 实体完整性
数据行不能存在重复,否则为冗余数据
2. 域完整性
对输入到特定列的数值的范围限制,就是安全性!
3. 引用完整性(即参照完整性Reference)
要求子表中的相关项必须在主表中存在
如果建立了主表和子表的关系,则: 子表中的相关项目的数据,在主表中必须存在;
主表中相关项的数据更改了,则子表对应的数据项也应当随之更改;
在删除子表之前,不能够删除主表;
删除主表中的数据必须先删除从表的数据;
4. 自定义完整性
二 约束:
约束的定义:确保表中数据的完整型
一般的约束类型:
主键约束(Primary Key Constraint):要求主键列数据唯一,并且不允许为空
默认约束(Default Constraint):某列的默认值,如国家我们默认的是“中国”
检查约束(Check Constraint):某列取值范围限制、格式限制等,如有关年龄的约束
唯一约束(Unique Constraint):要求该列唯一,允许为空,但只能出现一个空值。
外键约束(Foreign Key Constraint):用于两表间建立关系,需要指定引用主表的那列
如下是对约束的语法使用:
1. alter table student add constraint PK_sid primary key(sid) 对student表sid字段增加主键约束
2. alter table student add constraint DF_sex default("男") for sex 对student表中的sex字段增加默认约束为(男)
3. alter table student add constraint CK_age check(age between 30 and 50);对表中的年龄字段限制在30到50之间
4. alter table student add constraint UNI_studentid unique(studentid) 每个人的学号只有一个,避免出现相同
5. alter table student add constraint FK_cno foreign key(cno) reference info(cno)参照信息表中的cno字段
删除约束
alter table student drop constraint PK_sid primary;