资源描述:
《SQL完整性及约束性》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、SQLServer2000数据库系统主讲人:陈苗1回顾——创建数据库SQLServer数据库的概述数据库的创建和删除表的创建、修改和删除2第三次数据完整性目标:1.理解数据完整性2.掌握数据库约束33数据完整性数据完整性指数据库中存储数据的一致性数据完整性类型:实体完整性域完整性引用完整性用户自定义DB4实体完整性主要包括:主键约束IDENTITY属性和Unique3.1实体完整性学号姓名性别班级出生日期980010101张涛男022880-03-24980010102李明男021683-01-01实体完整性是将行定义为特定表的唯一实体。53.1.1主键主键是表中一列或多列的组
2、合,能够唯一确定表中一行记录。学号姓名980010101张涛980010102李明CreatetableStudent(StuNovarchar(9)primarykey,StuNamevarchar(10))63.1.2Unique约束UNIQUE约束在列集内强制执行值的唯一性Createtablestudent(StuNovarchar(9)primarykey,StuNamevarchar(10),Stucardnovarchar(18)unique)73.1.3使用IDENTITY属性语法:IDENTITY[(seed,increment)]初值增量例如:CREATET
3、ABLEScore(fIDintIDENTITY(101,1),fcodevarchar(13)NOTNULL,fsubjectvarchar(20)NOTNULL,fscorefloatNOTNULL)83.2域完整性域完整性是指给定列的输入有效性。强制域有效性的方法有:限制类型(指定列的数据类型)格式控制(如Check约束控制输入格式)可能值范围(如Notnull,default,check)93.2.1Check约束的使用作用:控制用户输入数据的格式语法:CreateTABLEStudent(fCodevarchar(9)NOTNULL,fNamevarchar(10)N
4、OTNULL,fSexchar(2)Check(fsexin(‘男’,‘女’)),fClassvarchar(4)NOTNULL,fBirthdaydatetime)10作用:提供给用户一个特定值CREATETABLEStudent(fCodevarchar(9)PrimaryKey,fNamevarchar(10)NOTNULL,fSexchar(2)NOTNULL,fClassvarchar(4)NOTNULL,fBirthdaydatetimedefault‘1980-1-1’)3.2.2Default默认值113.3引用完整性引用完整性确保键值在所有表中一致Score表
5、980010102103980010102102980010101101学号自动编号82英语72数学68英语成绩考试科目学号姓名性别班级出生日期980010101张涛男022880-03-24980010102李明男021683-01-01Student表外键123.3.1FOREIGNKEY(外键约束)ForeignKey约束定义列值与另一个表的PrimaryKey相匹配的列References子句与AlterTable语句一起使用以创建ForeignKey13--创建外键CREATETABLEscore(fIDintIDENTITY(101,1),fcodevarchar(
6、9)NOTNULL,fsubjectvarchar(20)NOTNULL,fscorefloatNOTNULL,PRIMARYKEY(fID),FOREIGNKEY(fcode)REFERENCESStudent(fcode))141、添加主键约束altertablestudentaddconstraintPK_fCodeprimarykey(fCode)约束名2、添加默认值约束altertablestudentaddconstraintDF_fNamedefault‘缺省’forfName以修改表的方式添加约束153、添加检查约束altertablestudentaddcon
7、straintCK_fSexcheck(fSexin('男','女'))约束名163.4删除约束语法ALTERTABLEstudentDROPCONSTRAINTCK_fSex已存在的约束名17PRIMARYKEY约束UNIQUE约束DEFAULT约束CHECK约束FOREIGNKEY约束总结实体完整性—行域完整性—列引用完整性—多表18作业:1.按要求创建表Employee,Salary2.要求:Employee包括如下字段:eId(主键),eName(默认值:缺省),eSex(检查:男