SQLServer数据完整性:更改唯一约束与实现方法

需积分: 0 0 下载量 55 浏览量 更新于2024-07-11 收藏 762KB PPT 举报
"更改现有表的惟一约束-实现数据的完整性" 在数据库管理中,数据完整性是确保数据准确、一致和可靠的关键方面。通过实施各种类型的约束和机制,可以维护数据的完整性。本章主要关注如何在SQL Server中更改现有表的唯一约束,以及如何实现数据完整性。 首先,我们讨论了数据完整性的概念,它涵盖了数值的完整性,确保数据的类型和取值是正确的,例如限制数据类型和取值范围,处理空值。此外,数据完整性还要求表内数据不相互矛盾,防止重复数据;表间数据也要保持一致性,如在关联表之间保持键值的一致性。 接着,我们了解了数据完整性的分类。实体完整性要求每个记录都有唯一的标识,这可以通过主键约束(PRIMARY KEY)、唯一性约束(UNIQUE)、唯一索引(UNIQUE INDEX)或标识字段(IDENTITY)来实现。值域完整性则关注数据类型和取值范围,这可以通过默认值约束(DEFAULT)、核查约束(CHECK)、外键约束(FOREIGN KEY)、规则(RULE)、数据类型和非空性约束(NOT NULL)来确保。引用完整性则是保证引用表的外键值在被引用表中存在,防止无效引用。 在实例8.8中,我们学习了如何在已有的“图书”表中添加一个新的“出版日期”列,并为其设置一个表内的第二个唯一约束,但这次设置为非聚簇选项。这是因为第一个唯一约束已经被设置为聚簇选项,根据SQL Server的规则,一个表只能有一个聚簇索引。 此外,本章还介绍了如何使用企业管理器和T-SQL语言来创建、修改主键约束、唯一性约束和标识字段。管理规则和默认值也是数据完整性的一部分,通过企业管理器可以管理规则,而T-SQL语言则用于创建、绑定、解除和删除规则及默认值。特别地,运用T-SQL创建的IDENTITY字段可以实现自动编号,确保每个新插入的记录都有一个独一无二的标识。 本章深入探讨了SQL Server中实现数据完整性的多种方法,包括更改现有表的唯一约束,这对于数据库管理员和开发人员来说是非常重要的技能,因为这直接关系到数据库的稳定性和数据的准确性。通过学习这些知识,读者能够更好地设计和维护符合业务需求的高质量数据库。
419 浏览量
1. 在studentdb数据库中利用查询分析器创建以下3个表,同时完成数据完整性的定义(实体完整性、参照完整性和用户定义的域完整性): student(学生信息表): 主码 列名 数据类型 宽度 小数位 空否 取值范围 备 注 Pk sno char 5   N 学号   sname char 10   N 姓名   ssex char 2   Y 性别   sage smallint Y 不小于12 年龄 sdept char 15 Y 系名 course(课程表): 主码 列名 数据类型 宽度 小数位 空否 备 注 Pk cno Char 2   N 课程号   cname Char 20   Y 课程名称   cpno Char 2   Y 先行课号   ccredit smallint Y 学分 sc(学生选课表): 主码 列名 数据类型 宽度 小数 空否 外码 参照关系 取值范围 备 注 Pk sno Char 5   N Fk student 学号 cno Char 2   N Fk course 课程号   grade Decimal 5 1 Y 0≤x≤100 成绩 2. 在spjdb数据库中利用查询分析器创建以下4个表,同时完成数据完整性的定义(实体完整性、参照完整性和用户定义的域完整性): S(供应商信息表): 主码 列名 数据类型 宽度 小数位 空否 取值范围 备 注 Pk sno char 2   N 供应商号   sname char 10   N 供应商名称   status smallint Y 大于0 供应商状态 city char 10 Y 所在城市 P(零件信息表): 主码 列名 数据类型 宽度 小数位 空否 取值范围 备 注 Pk pno char 2   N 零件号   pname char 10   N 零件名称 color char 2 Y 颜色   weight smallint Y 大于0 重量 J(工程项目表): 主码 列名 数据类型 宽度 小数位 空否 取值范围 备 注 Pk jno char 2   N 工程项目号   jname char 10   N 工程项目名称 city char 10 Y 所在城市 SPJ(供应情况表): 主码 列名 数据类型 宽度 小数 空否 外码 参照关系 取值范围 备 注 Pk sno Char 2   N Fk S 供应商号