用户定义的完整性
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
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根据已经定义的完整性规则自动进行检查并进行违约处理。