第3章节数据完整性新.pptVIP

  • 2
  • 0
  • 约2.48千字
  • 约 25页
  • 2018-12-05 发布于湖北
  • 举报
第3章节数据完整性新

第3章 数据完整性 本章内容 数据完整性 六种约束条件 小结 作业 数据完整性 数据完整性是指保证数据库中的数据符合现实,或者说,数据库中存储的数据要有实际意义。 数据的完整性是指数据的正确性和相容性。 数据完整性 为了维护数据的完整性,数据库管理系统必须提供一种机制来检查数据库中的数据是否满足语义规定的条件。这些加在数据库数据之上的语义约束条件就是数据完整性约束条件。 DBMS检查数据是否满足完整性条件的机制就称为完整性检查。 六种完整性约束条件 非空 唯一 主码 检查 默认值 外码 完整性约束条件作用的对象 列级 表级 非空约束 在表的一些字段中(如主键)永远也不应该出现空值 非空约束的格式为:NOT NULL 只能是列级约束 非空约束 例3-1 创建一个学生表Student,一共有4个字段: 学号(No) 数据类型为10位长定长字符串 姓名(Name) 数据类型为8位长变长字符串 性别(Sex)数据类型为2位长定长字符串 年龄(Age)数据类型为整型 要求学号和姓名不能为空,写出相应的SQL语句。 唯一约束 如果想要求某个列中所有的数据都是唯一的,不允许出现重复值,就需要在这个字段上加上唯一约束 唯一约束使用关键字UNIQUE 唯一约束 唯一约束所在列允许有一个空值 在一个表中可以定义多个UNIQUE约束 可以在一个列或多个列上定义UNIQUE约束 唯一约束 例3-2 创建一个课程表Course,包含如下字段: 课程号(No)数据类型为10位定长字符串 课程名(Name)数据类型为20位变长字符串 学分(Credit)数据类型为整型 要求课程号满足唯一条件。 主码约束 如果在表中某个列同时满足非空约束和唯一约束,那么我们称这种字段为候选码,候选码的作用是能够唯一地确定一行数据 从候选码中任意选出一个,可以作为主码 主码用关键字PRIMARY KEY定义 主码约束 每个表只能有一个主码 主码字段的取值不能有重复,而且不允许有空值 实现实体完整性 主码约束 例3-3 创建一个图书表Book,包含如下字段: 图书编号(No)数据类型为10位定长字符串 图书名(Name)数据类型为20位变长字符串 作者(Author)数据类型为10位定长字符串 定价(Price)数据类型为整型 要求图书编号为主码,图书名满足非空条件。 主码约束 例3-4创建一个选课情况表SC,一共有3个字段: 学号(Sno) 数据类型为10位长定长字符串 课程号(Cno) 数据类型为5位长定长字符串 成绩(Grade)数据类型为整型 要求学号和课程号联合作主码,写出相应的SQL语句。 检查约束 如果想控制某个字段只能取某个范围内的值,可以使用检查约束 可约束同一个表中多个列之间的取值关系 语法格式:CHECK(约束条件) 检查约束 例3-5 重新创建学生表Student,一共有4个字段: 学号(No) 数据类型为10位长定长字符串 姓名(Name) 数据类型为8位长变长字符串 性别(Sex)数据类型为2位长定长字符串 年龄(Age)数据类型为整型 要求学号为主码,姓名不能为空,性别只能在“男”和“女”当中取值,年龄只能大于18岁且小于23岁。写出相应的SQL语句。 检查约束 例3-6 创建一张工程表Project,一共有3个字段: 工程名(Name) 数据类型为20位长变长字符串 开工日期(StartDate)数据类型为日期时间 完工日期(FinishDate)数据类型为日期时间 要求工程名为主码,开工日期要早于完工日期。写出相应的SQL语句。 默认值约束 如果在表中有某个字段总是取相同的值,我们可以考虑使用缺省值约束,用于提供列的默认值,使我们在向表中插入数据的时候更加方便 语法格式为:DEFAULT 默认值 默认值约束 例3-7 重新创建学生表Student,一共有4个字段: 学号(No) 数据类型为10位长定长字符串 姓名(Name) 数据类型为8位长变长字符串 性别(Sex)数据类型为2位长定长字符串 年龄(Age)数据类型为整型 要求学号为主码,姓名不能为空,性别只能在“男”和“女”当中取值,年龄的缺省值为20岁。写出相应的SQL语句。 外码约束 外码限制一个表中(丛表)的某些列(参照字段,外码字段)的取值要受到另外一个表(主表)中的列(被参照字段)的取值范围的约束。即参照字段的值必须是被参照字段中已经存在的数值,或者为空值。 建立外码时,根据条件,外码可定义为列级约束或表级约束。 外码实现参照完整性。 外码约束 定义外码的语法如下(表级约束): FOREIGN KEY(外码字段)REFERENCES 主表名称(被参照字段) 当定义为列级约束时,FOR

文档评论(0)

1亿VIP精品文档

相关文档