国开《数据库基础与应用》第四章 4-2-3:列级完整性约束
4-2-3:列级完整性约束
在定义一个基本表中,在每个列的列名及数据类型定义的后面,还有时需要给出该列的完整性约束的定义,称此为列级完整性约束。
列级完整性约束被分为以下6种情况。
(1)默认值约束。表示为:DEFAULT <常量表达式>。如DEFAULT 0 可作为职工工资列的默认值,DEFAULT 18 可作为职工年龄列的默认值。
(2)空值/非空值约束。表示为:NULL/NOT NULL。如姓名列的定义为:“姓名 char(6) NOT NULL”,就定义了姓名列为字符型,非空约束。
(3)主码约束。表示为:PRIMARY KEY。一个表中被注明主码后,数据库管理系统将按主码值的升序自动建立一个对应的索引,以后在显示或处理表中的内容时,将自动按照主码的升序。如学生号列的定义为:“学生号 char(7) PRIMARY KEY”,学生号列为字符型,主码约束,学生号成为学生表中的主码。
(4)单值约束。表示为:UNIQUE。注明该列上的所有取值必须互不相同。如身份证号列可定义为:“身份证号 char(18) UNIQUE”。
(5)外码约束。表示为:REFERENCES <父表名>(<主码>)。注明该列为外码,并给出对应的父表及父表中被参照的主码。学生号列可定义为:“学生号 char(7) REFERENCES 学生表(学生号)”。
(6)检查约束。表示为:CHECK(<逻辑表达式>)。注明该列的取值条件,或称取值限制。如性别列的定义可以为:“性别 char(2) not null check(性别='男' OR 性别='女')”。