,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,大型数据库,SQL Server 2000,程序设计,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,第4章 约束、默认和规则,数据完整性,约束,【CONSTRAINT】,默认,【DEFAULT】,规则,【RULE】,4.1 数据完整性,数据完整性就是存储在数据库中的数据的一致性和正确性。,根据数据完整性措施所作用的数据库对象和范围不同,数据完整性分为:,实体完整性,又称为行完整性,即数据库中的所有行都具,有一个非空且没有重复的主键值。,域完整性,又叫列完整性,以保证列数据的输入具有正,确的数据类型、格式和有效的数据范围。,参照完整性,又叫引用完整性,旨在保证主表和从表数据,的一致性。,用户定义完整性,用户定义的不属于以上完整性的特定规,则。,4.1 数据完整性,在,SQL SERVER2000,里,我们可以采取许多方法保证各种完整性:,实体完整性,通过建立唯一索引、,PRIMARY KEY,约束、,UNIQUE,约束、,IDENTITY,属性等来强制主键,的唯一性。,域完整性,强制域有效性可以通过限制数据类型、,CHECK,约束和规则、,FOREIGN KEY、,DEFAULT、NOTNULL,定义实现,。,参照完整性,通过,FOREIGN KEY,和,CHECK,约束来实现。,4.2 约束,【CONSTRAINT】,实质:强制实行的应用规则,功能:通过限制列中数据、行中数据和表之间数,据来保证数据的完整性,应用方法:在,CREATE TABLE,语句中声明,在,ALTER TABLE,语句中添加、删除,当表被删除时,所带的 约束定义也,随之被删除,4.2 约束,【CONSTRAINT】,实现约束的五种方式,:,CHECK,约束,PRIMARY KEY,约束,FOREIGN KEY,约束,UNIQUE,约束,DEFAULT,约束,4.2.1,CHECK,约束,CHECK,约束用于限制输入到一列或多列的值的范围:用户想输入的数据值如果不满足,CHECK,约束中的条件(逻辑表达式)将无法正常输入。,使用企业管理器定义、删除,CHECK,约束,使用,T-SQL,语句创建,CHECK,约束(在创建或修改表时);,语法格式:,CONSTRAINT,约束名,CHECK(,逻辑表达式),使用,T-SQL,语句删除,CHECK,约束,语法格式:,DROP CONSTRAINT,约束名,4.2.1,CHECK,约束,例:创建表成绩(学号,课程号,成绩)的同时定义,CHECK,约束要求,成绩的范围为0100。,T-SQL,语句如下:,CREATE TABLE,成绩,(学号,char(8)NOT NULL,,课程号,char(3)NOT NULL,,成绩,tinyint NULL,CONSTRAINT,ck_cj,CHECK,(,成绩=0,and,成绩,=0,and,成绩,=0 and cj=100,4.4.2 绑定规则对象,使用企业管理器绑定规则对象,使用,sp_bindrule,语句绑定规则对象,语法格式:,sp_bindrule,rulename=,规则对象名,objname=,绑定的列名,例:将规则对象,cj_rl,绑定到成绩表的成绩列。,use,学生成绩,go,exec sp_bindrule,cj_rl,,,成绩.成绩,