logo资料库

实验3:完整性语言实验.doc

第1页 / 共13页
第2页 / 共13页
第3页 / 共13页
第4页 / 共13页
第5页 / 共13页
第6页 / 共13页
第7页 / 共13页
第8页 / 共13页
资料共13页,剩余部分请下载后查看
实验3.1 实体完整性实验
【实验目的】
【实验内容和要求】
定义实体完整性,删除实体完整性。能够写出两种方式定义实体完整性的SQL语句;创建表时定义实体完整性、
【实验工具】
【实验过程】
(1)创建表时定义实体完整性(列级实体完整性)
定义供应商表的实体完整性
实验3.2 参照完整性实验
【实验目的】
【实验内容和要求】
定义参照完整性,定义参照完整性的违约处理,删除参照完整性。写出两种方式定义参照完整性的SQL;创建表
【实验工具】
【实验过程】
实验3.3 用户自定义完整性实验
【实验目的】
【实验工具】
【实验过程】
(1)定义属性null/not null约束
定义地区表各属性的null/not null属性。
数据库实验报告 实验 3:完整性语言实验 实验 3.1 实体完整性实验 【实验目的】 掌握实体完整性的定义和维护方法。 【实验内容和要求】 定义实体完整性,删除实体完整性。能够写出两种方式定义实体完整性的 SQL 语句;创 建表时定义实体完整性、创建表后定义实体完整性。设计 SQL 语句验证完整性约束是否起作 用。 【实验重点和难点】 实验重点:创建表时定义实体完整性。 实验难点:有多个候选码时实体完整性的定义。 【实验工具】 SQL Server 2017、SQL Server Management studio 【实验过程】 (1)创建表时定义实体完整性(列级实体完整性) 定义供应商表的实体完整性 执行结果如下图所示: 1 / 13
数据库实验报告 (2)创建表时定义实体完整性(表级实体完整性) 定义供应商表的实体完整性 执行结果如下图所示: (3)创建表后定义实体完整性 定义供应商表。 2 / 13
数据库实验报告 执行结果如下图所示: (4)定义实体完整性(主码由多个属性组成) 定义供应关系表的实体完整性 执行结果如下图所示: 3 / 13
数据库实验报告 (5)有多个候选码时定义实体完整性 定义国家表的实体完整性,其中 nationkey 和 name 都是候选码,选择 nationkey 作为 主码,name 上定义唯一性约束。 执行结果如下图所示: (6)删除实体完整性 删除国家实体的主码 执行结果如下图所示: (7)增加两条相同记录,验证实体完整性是否起作用 4 / 13
数据库实验报告 执行结果如下图所示: 说明:可以看到,增加两条相同的记录,语句不能正常执行,这是因为该语句违反了主 键约束,插入了重复键。 【实验总结】 (1)SQL 中 char、varchar、nvarchar 的区别 1 char:char 是定长的,也就是当你输入的字符小于你指定的数目时,char(8),你 输入的字符小于 8 时,它会再后面补空值。当你输入的字符大于指定的数时,它会截取超出 的字符。 2 nvarchar(n):包含 n 个字符的可变长度 Unicode 字符数据。n 的值必须介于 1 与 4,000 之间。字节的存储大小是所输入字符个数的两倍。所输入的数据字符长度可以为 零。 3 varchar[(n)] :长度为 n 个字节的可变长度且非 Unicode 的字符数据。n 必须 是一个介于 1 和 8,000 之间的数值。存储大小为输入数据的字节的实际长度,而不是 n 个 字节。所输入的数据字符长度可以为零。 (2)关于 sql 中 constraint 前缀的用意(PK、UK、DF、CK、FK) ·主键:constraint PK_字段 primary key(字段), ·唯一约束:constraint UK_字段 unique key(字段), ·默认约束:constrint DF_字段 default('默认值') for 字段, ·检查约束:constraint CK_字段 check(约束。如:len(字段)>1), ·主外键关系:constraint FK_主表_从表 foreign(外键字段) references 主表(主表主键 字段) (3)进行创建表后定义实体完整性时,出现如下错误: 这是因为 primary key 约束是不允许为空的,在 suppkey integer 后面加上 not null 就可以解决了。 (4)所有列级完整性约束都可以改为表级完整性约束,而表级完整性约束不一定可以改写 为列级完整性约束,这是因为当主码有多个属性组成时,实体完整性必须定义在表级。 (5)实体完整性检查违约: 1 检查主码值是否唯一,如果不唯一则拒绝插入或修改。 2 检查主码的各个属性是否为空,只要有一个为空就拒绝插入或修改。 5 / 13
数据库实验报告 实验 3.2 参照完整性实验 【实验目的】 掌握参照完整性的定义和维护方法。 【实验内容和要求】 定义参照完整性,定义参照完整性的违约处理,删除参照完整性。写出两种方式定义参 照完整性的 SQL;创建表时定义参照完整性,创建表后定义参照完整性。 【实验重点和难点】 实验重点:创建表时定义参照完整性。 实验难点:参照完整性的违约处理定义。 【实验工具】 SQL Server 2017、SQL Server Management studio 【实验过程】 (1)创建表时定义参照完整性 定义地区表的实体完整性,再定义国家表上的参照完整性。 执行结果如下图所示: 6 / 13
(2)创建表后定义参照完整性 数据库实验报告 执行结果如下图所示: (3)定义参照完整性(外码有多个属性组成) 定义订单项目表的参照完整性 执行结果如下图所示: 7 / 13
数据库实验报告 (4)定义参照完整性的违约处理 定义国家表的参照完整性,当删除或修改被参照表记录时,设置参照表中相应记录的值 为空值。 执行结果如下图所示: (5)删除参照完整性 删除国家表的外码 执行结果如下图所示: 8 / 13
分享到:
收藏