《SQL完整性及约束性.ppt》由会员分享,可在线阅读,更多相关《SQL完整性及约束性.ppt(19页珍藏版)》请在三一办公上搜索。
1、1,SQL Server 2000 数据库系统,主讲人:陈苗,2,回顾创建数据库,SQLServer数据库的概述数据库的创建和删除表的创建、修改和删除,3,第三次 数据完整性,目标:1.理解数据完整性 2.掌握数据库约束,4,3 数据完整性,数据完整性指数据库中存储数据的一致性数据完整性类型:实体完整性域完整性引用完整性用户自定义,DB,5,实体完整性主要包括:主键约束IDENTITY 属性和Unique,3.1 实体完整性,实体完整性是将行定义为特定表的唯一实体。,6,3.1.1 主键,主键是表中一列或多列的组合,能够唯一确定表中一行记录。,Create table Student(StuN
2、o varchar(9)primary key,StuName varchar(10),7,3.1.2 Unique约束,UNIQUE 约束在列集内强制执行值的唯一性Create table student(StuNo varchar(9)primary key,StuName varchar(10),Stucardno varchar(18)unique),8,3.1.3 使用IDENTITY属性,语法:IDENTITY(seed,increment),初值,增量,例如:CREATE TABLE Score(fID int IDENTITY(101,1),fcode varchar(13)N
3、OT NULL,fsubject varchar(20)NOT NULL,fscore float NOT NULL),9,3.2 域完整性,域完整性是指给定列的输入有效性。强制域有效性的方法有:,限制类型(指定列的数据类型),格式控制(如Check约束控制输入格式),可能值范围(如Not null,default,check),10,3.2.1 Check约束的使用,作用:控制用户输入数据的格式语法:Create TABLE Student(fCode varchar(9)NOT NULL,fName varchar(10)NOT NULL,fSex char(2)Check(fsex in
4、(男,女),fClass varchar(4)NOT NULL,fBirthday datetime),11,作用:提供给用户一个特定值CREATE TABLE Student(fCodevarchar(9)Primary Key,fNamevarchar(10)NOT NULL,fSexchar(2)NOT NULL,fClass varchar(4)NOT NULL,fBirthday datetime default 1980-1-1),3.2.2 Default默认值,12,3.3 引用完整性,引用完整性确保键值在所有表中一致,Score 表,Student表,外键,13,3.3.1
5、FOREIGN KEY(外键约束),Foreign Key 约束定义列值与另一个表的 Primary Key 相匹配的列References 子句与 Alter Table 语句一起使用以创建 Foreign Key,14,-创建外键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),15,
6、1、添加主键约束alter table studentadd constraint PK_fCode primary key(fCode),约束名,2、添加默认值约束alter table studentadd constraint DF_fName default 缺省 for fName,以修改表的方式添加约束,16,3、添加检查约束alter table studentadd constraint CK_fSex check(fSex in(男,女),约束名,17,3.4 删除约束,语法ALTER TABLE studentDROP CONSTRAINT CK_fSex,已存在的约束名,18,PRIMARY KEY 约束UNIQUE 约束DEFAULT 约束CHECK 约束FOREIGN KEY 约束,总结,实体完整性行域完整性列引用完整性多表,19,作业:,1.按要求创建表Employee,Salary2.要求:Employee包括如下字段:eId(主键),eName(默认值:缺省),eSex(检查:男,女),eGrade(Check约束),eBirthday(Check约束:1960.1.1)3.要求:score包括如下字段:sId(主键),eId(外键),sBaseSalary(Check约束:0),sSalary(默认值:0),