1. 用户定义的完整性
针对某一具体应用的数据必须满足的语义要求就是用户定义的完整性
1.1. 属性上的约束条件
1.属性上的约束条件的定义
列值非空(NOT NULL)
CREATE TABLE ... (SNO CHAR(9) NOT NULL/*主码不能是NULL*/ CNO CHAR(7) NOT NULL ..... PRIMARY KEY (SNO,CNO)/*在表级定义实体完整性,并且此句隐含了SNO ,CNO不能取空值,此 时上面的SNO和CNO的NOT NULL可以不写*/ )
列值唯一(UNIQUE)
CREATE TABLE ... (SNO CHAR(9) UNIQUE NOT NULL /*SNO唯一,并且不能是NULL*/ CNO CHAR(7) NOT NULL )
检查列值是否满足一个条件表达式(CHECK短句)
CREATE TABLE ... (SNO CHAR(9) NOT NULL CNO CHAR(7) NOT NULL Ssex CHAR(2) CHECK(Ssex IN('男','女'))/*该属性只能从男、女中选择*/ )
2. 属性上的约束条件的检查和违约处理
1.2. 元组上的约束条件
1.元组上约束条件的定义
与属性上的约束条件的定义类似:
元组上约束条件的定义 在CREATE TABLE中用 CHECK 语句定义元组的约束条件
CREATE TABLE ... (SNO CHAR(9) NOT NULL Sname CHAR(7) NOT NULL Ssex CHAR(2) CHECK(Ssex='女' OR Sname NOT LIKE 'Ms.%')/*学生性别是男的时候,起名字不能用Ms开 头*/ )