文档库 最新最全的文档下载
当前位置:文档库 › 用户定义的完整性

用户定义的完整性

Database System

数据库系统概论Introduction to Database Systems

主讲人:吴岩河南理工大学

第四章 数据库的完整性

知 识 点

实体完整性规则

1

参照完整性规则

2

用户定义的完整性规则

3

4.3 用户定义的完整性规则

唯一值约束

非空值约束

默认值约束

取值范围约束

4.3.1 唯一值约束

唯一值约束-含义

唯一值约束用UNIQUE 短语来实现

唯一值约束用于限制一个列的取值不重复,或者是多个列的组合取值不重复。

在一个表中可以定义多个UNIQUE 约束

可以在一个列或多个列上定义UNIQUE 约束

4.3.1 唯一值约束

创建表时定义唯一值约束-语法格式

CREATE TABLE <表名>

(…

<列名> <数据类型> UNIQUE ,…

) CREATE TABLE <表名>

( <列名> <数据类型> ,

[CONSTRAINT 约束名] UNIQUE(<列名>[,…n]), )

4.3.1 唯一值约束

创建表时定义唯一值约束-示例

将读者类型表中的?类型名称?列设置唯一值约束。

CREATE TABLE 读者类型

(…

类型名称 Varchar(16) UNIQUE,

) CREATE TABLE 读者类型(…

类型名称 Varchar(16),

UNIQUE(类型名称)

)

4.3.1 唯一值约束

向已建立的表中添加唯一值约束-语法格式

ALTER TABLE <表名>

ADD [CONSTRAINT 约束名] UNIQUE (<列名>[,…n])

4.3.1 唯一值约束

向已建立的表中添加唯一值约束-示例

向已经创建的读者类型表中添加名称为UN_LXMC的唯一值约束。

ALTER TABLE 读者类型

ADD CONSTRAINT UN_LXMC UNIQUE(类型名称)

4.3.2 非空值约束

非空值约束-含义

非空值约束用NOT NULL

短语实现

非空值约束用于限制一个列的取值不能为空值

在一个表中可以定义多个非空值约束

4.3.2 非空值约束

创建表时定义非空值约束-语法格式

CREATE TABLE <表名>

(…

<列名> <数据类型> NOT NULL ,

)

4.3.3 默认值约束

默认值约束-含义

默认值约束用DEFAULT

短语来实现

默认值约束用于提供列的默认取值。当在表中插入数据时,如果没有为有该约束的列提供值,则系统自动使用约束定义的默认值。

只在向表中插入数据时才检查

DEFAULT 约束

每个列只能有一

个默认值约束

4.3.3 默认值约束

创建表时定义默认值约束-语法格式

CREATE TABLE <表名>

(…

<列名> <数据类型> DEFAULT 常量表达式,…

)

4.3.3 默认值约束

创建表时定义默认值约束-示例

在读者表中,如果某个读者没有读者类型,则默认取值?本科生?。

CREATE TABLE 读者

(…

类型名称 Varchar (16) DEFAULT‘本科生’,

)

4.3.3 默认值约束

向已建立的表中添加默认值约束-语法格式

ALTER TABLE <表名>

ADD [CONSTRAINT约束名] DEFAULT 常量表达式 FOR 列名

4.3.3 默认值约束

向已建立的表中添加默认值约束-示例

向已经创建的读者表中添加名称为DF_DZLX的默认值约束,读者类型默认取值?本科生?。

ALTER TABLE 读者

ADD CONSTRAINT DF_DZLX DEFAULT ‘本科生’ For 类型名称

4.3.4 取值范围约束

取值范围约束-含义

取值范围约束用CHECK 短语实现

取值范围约束用于限制列的取值在指定范围内,使列的取值符合应用语义。

可以限制一个列的取值范围,也可以限制同一表中多个列之间的取值约束关系

在执行Insert 语句和Update 语句时系统自动检查CHECK 约束

4.3.4 取值范围约束

创建表时定义CHECK约束-语法格式

CREATE TABLE <表名>

(…

<列名> <数据类型> CHECK (逻辑表达式),…

)

4.3.4 取值范围约束

创建表时定义CHECK约束-示例

在成绩表中,定义学生成绩取值范围为0-100之间。

CREATE TABLE 成绩

(…

成绩 int CHECK(成绩>=0 and 成绩<=100),

)

4.3.4 取值范围约束

向已建立的表中添加CHECK约束-语法格式

ALTER TABLE <表名>

ADD [CONSTRAINT 约束名] CHECK(逻辑表达式)

●用户定义的完整性规则体现应用系统的业务规则。

●当执行插入或更新操作时,DBMS根据已经定义的完整性规则自动进行检查并进行违约处理。

相关文档