数据库实验三——完整性定义与检查
数据库实验三——完整性定义与检查一、实验题目二、实验内容和要求三、实验步骤(一)实体完整性实验1.创建表时定义实体完整性2.创建表后定义实体完整性3.多个候选码时定义实体完整性4.删除实体完整性5.验证实体完整性(二)参照完整性实验1.创建表时定义参照完整性2.创建表后定义实体完整性3.定义参照完整性的违约处理4.删除参照完整性5.插入记录验证参照完整性(三)用户自定义完整性实验1.定义NULL/
数据库实验三——完整性定义与检查
一、 实验题目
数据库完整性定义与检查
二、 实验内容和要求
完整性语言实验包含3个实验项目,其中2个必修项目,1个选修项目。该实验的各个实验项目均为验证型实验项目。
掌握实体完整性的定义和维护方法。
掌握参照完整性的定义和维护方法。
掌握用户自定义完整性的定义和维护方法。
三、 实验步骤
(一) 实体完整性实验
定义实体完整性,删除实体完整性。能够写出两种方式定义实体完整性的SQL语句:创建表时定义实体完整性、创建表后定义实体完整性。设计SQL语句验证完整性约束是否起作用。
实验重点:创建表时定义实体完整性。
实验难点:有多个候选码时实体完整性的定义。
1. 创建表时定义实体完整性


还有主码由多个属性组成的实体完整性定义,必须定义在表级,如上图所示!
2. 创建表后定义实体完整性

使用ALTER TABLE <表名> ADD CONSTRAIN <名称> PRIMARY KEY(<属性组>);
3. 多个候选码时定义实体完整性

定义国家表的实体完整性,其中nationkey和name都是候选码,选择nationkey作为主码,name上定义唯一性约束。
4. 删除实体完整性

5. 验证实体完整性

两条主码相同的记录违反实体完整性,第二条无法插入。W
(二) 参照完整性实验
定义参照完整性,定义参照完整性的违约处理,删除参照完整性。写出两种方式定义参照完整性的SQL语句:创建表时定义参照完整性、创建表后定义参照完整性。
实验重点:创建表时定义参照完整性。
实验难点:参照完整性的违约处理定义。
1. 创建表时定义参照完整性

如图,创建表时定义参照完整性,有上图表级、列级两种方式;
CONSTRAINT <名称> FOREIGN KEY <属性> REFERENCES <表名>(<列名>)
2. 创建表后定义实体完整性

定义表后,使用ALTER TABLE <表名> ADD CONSTRAIN <名称> FOREIGN KEY(<属性名>) REFERNCES <表名>(列名);
3. 定义参照完整性的违约处理

在定义参照完整性时,设置违约处理,当删除或修改被参照记录时,设置参照表中相应记录值为空。
CONSTRAINT <名称> FOREIGN KEY <属性> REFERENCES <表名>(<列名>)
ON <操作>
4. 删除参照完整性

ALTER TABLE <表名> DROP CONSTRAINT <约束名>;
5. 插入记录验证参照完整性


当直接插入Supplier表中时,因为nation表中没有主键为101的记录,因此无法插入成功;
(三) 用户自定义完整性实验
针对具体应用语义,选择NULL/NOT NULL、DEFAULT、UNIQUE、CHECK等,定义属性上的约束条件。
实验重点:NULL/NOT NULL, DEFAULT。
实验难点:CHECK。
1. 定义NULL/NOT NULL约束、DEFAULT约束、UNIQUE约束
2. 验证上述约束







3. 定义check约束
定义订单表,returnflag表示退货标志,使用CHECK约束使之固定为几个值,shipdate、receiptdate分别为装运日期、签收日期,CHECK约束使之装运日期<签收日期。
4. 检查CHECK约束



更多推荐



所有评论(0)