资源描述
,*,/19,创建约束,主讲人:夏岩,1,数据完整性,目标:,1.,理解数据完整性,2.,掌握数据库约束,2,3,数据完整性,数据完整性,指数据库中存储数据的一致性,数据完整性类型:,实体完整性,域完整性,引用完整性,用户自定义,DB,3,实体完整性主要实现方法,:,主键约束,primary key,IDENTITY,属性和,Unique,约束,3.1,实体完整性,学号,姓名,性别,班级,出生日期,980010101,张涛,男,3107,80-03-24,980010102,李明,男,3108,83-01-01,实体完整性是将行定义,为,特定表的唯一实体。,4,3.1.1,主,键,主键是表中一列或多列的组合,能够唯一确定表中一行记录。,学号,姓名,980010101,张涛,980010102,李明,Create table Student,(,StuNo,varchar(9),primary key,StuName,varchar(10),),5,3.1.2 Unique,约束,UNIQUE,约束在列集内强制执行值的唯一性,Create table student,(,StuNo,varchar(9),primary key,StuName,varchar(10),StuCardID,varchar(18),unique,),6,3.1.3,使用,IDENTITY,属性,语法:,IDENTITY,(seed,increment),初值,增量,例如:,CREATE TABLE Score,(,fID,int,IDENTITY(101,1),fcode,varchar(13)NOT NULL,fsubject,varchar(20)NOT NULL,fscore,float NOT NULL,),7,3.2,域完整性,域完整性是指给定列的输入有效性。,强制域有效性的方法有,:,限制类型,(指定列的数据类型),格式控制,(如,Check,约束控制输入格式),可能值范围,(,如,Not null,约束,default,定义,check,约束,),8,3.2.1 Check,约束的使用,作用,:,控制用户输入数据的格式,语法,:,Create TABLE Student,(,fCode,varchar(9)NOT NULL ,fName,varchar(10)NOT NULL ,fSex,char(2),Check(fsex,in(,男,女,),fClass,varchar(4)NOT NULL ,fBirthday,datetime,),9,作用,:,提供给用户一个特定值,CREATE TABLE,Student,(,fCode,varchar(9)NOT NULL ,fName,varchar(10)NOT NULL ,fSex,char(2)NOT NULL,fClass,varchar(4)NOT NULL,fBirthday,datetime,default 1980-1-1,),3.2.2 Default,默认值定义,10,3.3,引用完整性,引用完整性确保键值在所有表中一致,Score,表,980010102,103,980010102,102,980010101,101,学号,自动编号,82,英语,72,数学,68,英语,成绩,考试科目,学号,姓名,性别,班级,出生日期,980010101,张涛,男,3107,80-03-24,980010102,李明,男,3108,83-01-01,Student,表,外键,11,3.3.1 FOREIGN KEY(,外键约束,),FOREIGN KEY,约束定义列值与另一个表的,PRIMARY KEY,相匹配的列,REFERENCES,子句与,ALTER TABLE,语句一起使用以创建,FOREIGN KEY,12,-,创建外键,CREATE TABLE score,(,fID,int,IDENTITY(101,1),fcode,varchar(9)NOT NULL,fsubject,varchar(20)NOT NULL,fscore,float NOT NULL,PRIMARY,KEY(fID,),FOREIGN,KEY(fcode,),REFERENCES,Student(fcode,),),13,以修改表的方式添加约束,-1,、添加主键约束,alter table student,add constraint,PK_fCode,primary,key(fCode,),-2,、,添加默认值定义,alter table student,add constraint,DF_fName,default,缺省,for,fName,14,3,、,添加检查约束,alter table student,add constraint,CK_fSex,check(fSex,in(,男,女,),约束名,15,3.4,删除约束,语法,ALTER TABLE,student,DROP CONSTRAINT,DF_birthday,16,数据完整性和约束,实体完整性:,PRIMARY KEY,约束,UNIQUE,约束,Identity,属性,域完整性:,CHECK,约束,DEFAULT,定义,NOT NULL,约束,引用完整性:,FOREIGN KEY,约束,本课总结,17,作业:,1.,按要求创建表,Employee,Salary2.,要求,:Emp,包括如下字段,:,eId,(,主键,),eName,(,默认值,:,缺省,),eSex,(,检查,:,男,女,),eGrade(Check,约束,),eBirthday(Check,约束:,1960.1.1),3.,要求,:Salary,包括如下字段,:,sId,(,主键,),eId,(,外键,),sBaseSalary(Check,约束:,0),sSalary,(,默认值,:0),18,
展开阅读全文