




已阅读5页,还剩37页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
数据库应用技术SQLServer2005 郑州经贸职业学院计算机系 SQLSERVER2005 2 第5章数据完整性 学习目标 1 实现数据完整性2 理解约束的作用3 熟练管理 如创建 删除 约束4 熟练创建 删除默认值 规则等 5 灵活运用数据库对象 SQLSERVER2005 3 第5章数据完整性 学习重点 1 理解约束的作用2 熟练管理 如创建 删除 约束和默认学习难点 1 熟练管理 如创建 删除 约束和默认 SQLSERVER2005 4 教学内容 数据完整性的基本概念 1 约束 2 规则 3 默认 4 标识列 本章小结 6 SQLSERVER2005 5 第一节数据完整性的基本概念 数据完整性数据完整性就是关系 表 中数据的正确性和一致性 它反映了现实世界中实体的本来面貌 数据完整性分为域完整性 实体完整性 参照完整性 用户定义完整性 SQLSERVER2005 6 域完整性 DomainIntegrity 也称为列的完整性 域的完整性是指表中的任一列数据必须满足所定义的数据类型 且其值必须在有效地范围之内 如性别列的值只能是男或女 年龄必须是0 200之间等 SQLSERVER2005 7 实体完整性 EntityIntegrity 实体的完整性是指表中必须有一个主关键字 它惟一地标识表中的每一行 且不允许为空值 即表有主关键字 SQLSERVER2005 8 参照完整性 ReferentialIntegrity 也称为引用完整性 参照完整性是对表与表之间的联系而言的 两个相关联的表满足参照完整性 就是说这两个表中的数据是一致的 协调的 两个表的主关键字和外关键字也是一致的 协调的 要求有关系的表数据保持一致 SQLSERVER2005 9 保证参照完整性的规则1 当在从表作Insert时 要保证外关键字的值一定在主表中存在 2 当在主表中修改了主关键字值 则在从表中要同步修改 或禁止修改主表 3 当在从表中修改外关键字值 要保证修改的值在主表中存在 4 当删除主表记录 要注意从表中是否引用主关键字 若有 则禁止删除或同步删除从表记录 SQLSERVER2005 10 用户定义完整性 USER DEFINEDIntegrity 针对某个特定关系数据库的约束条件 反映某一个具体应用所涉及的数据必须满足的语句要求 所有完整性类别都支持用户定义完整性 SQLSERVER2005 11 第二节约束 约束概念约束定义了关于允许什么数据进入数据库的规则 是分配给表或表中某列的一个属性 约束的作用 防止列中出现非法数据 保证了数据的完整性通过限制列中数据 行中数据和表之间关系来保证数据的完整性 SQLSERVER2005 12 约束的种类PRIMARYKEY 主键 约束FOREIGNKEY 外键 约束UNIQUE 唯一 约束CHECK约束DEFAULT约束 SQLSERVER2005 13 主键约束 PRIMARYKEY 某列或几个列的组合 其值能唯一标识表中一行 并且不能为空 使用时 往往在其上建立索引 以提高数据库的性能 如果为表指定主键约束 则数据库引擎将通过为主键创建唯一索引来强制数据的唯一性 因此 所选主键必须遵守创建唯一索引的规则 SQLSERVER2005 14 注意 一个表只能有一个主键约束 而且主键约束中的列不能接受空值 如果主键约束定义在不止一列上 则一列中的值可以重复 但主键约束定义中的所有列的组合的值必须唯一 SQLSERVER2005 15 创建方法 1 使用SSMS2 使用SQL语句 SQLSERVER2005 16 问题 使用SSMS为Student表创建名为PK StuNo的PRIMARYKEY约束 保证不会出现学号重复记录 SQLSERVER2005 17 问题 使用T SQL语句在Xk数据库中为StuCou表创建名为PK StuNoCouNo的PRIMARYKEY约束 ALTERTABLEStuCouADDCONSTRAINTPK StuNoCouNoPRIMARYKEY StuNo CouNo SQLSERVER2005 18 外键约束 FOREIGNKEY 建立两个表之间的数据联系 主要目的是控制可以存储在外键表中数据 即参照完整性 SQLSERVER2005 19 注意 1 一个表可以同时包含多个外键约束 2 定义为外键约束的列中可以存放空值 3 在使用了外键约束的情况下 如果想改变或删除主表中的这些行 应该先取消外键与主键值之间的联系 SQLSERVER2005 20 例 使用SSMS在Xk数据库中为StuCou表创建名为FK StuNo的FOREIGNKEY约束 该约束限制StuNo列的数据只能是Student表中StuNo列中存在的数据 SQLSERVER2005 21 例 使用Transact SQL语句在Xk数据库中为StuCou表创建名为FK CouNo的外键约束 该约束限制CouNo列的数据只能是Course表的CouNo列中存在的数据 ALTERTABLEStuCouADDCONSTRAINTFK CouNoFOREIGNKEY CouNo REFERENCESCourse CouNo SQLSERVER2005 22 唯一约束 UNIQUE UNIQUE约束要求字段的值不能重复 同时允许字段的值为空 说明 1 一个表格可以创建多个UNIQUE约束 它主要用于不是主键但又要求不能有重复值的字段 2 UNIQUE约束允许被约束列的值为空 但不允许表中受约束列有一行以上的值同时为空 SQLSERVER2005 23 问题 为Student表创建基于Pwd列 名为UK Pwd的唯一约束 AlterTableStudentADDConstraintUK PwdUNIQUE Pwd SQLSERVER2005 24 Check约束 限制表的某些字段满足一定条件 问题 为Student表创建名为CK StuNo的CHECK约束 该约束限制StuNo列中只允许8位数字 ALTERTABLEStudentADDCONSTRAINTCK StuNoCHECK StuNolike 0 9 0 9 0 9 0 9 0 9 0 9 0 9 0 9 ANDStuNo 00000000 SQLSERVER2005 25 问题 使用SSMS在Xk数据库中为Course表创建名为CK CouNo的CHECK约束 该约束限制CouNo列中只允许3位数字 并且三位数字都不为0 SQLSERVER2005 26 DEFAULT约束 如果用户没有为定义了DEFAULT约束的字段输入数据 则由该约束提供默认的数据 避免空值的有效方法之一 说明 一个字段只能建立一个DEFAULT约束 SQLSERVER2005 27 问题 为StuCou表的State字段建立名为DF StuCou State的DEFAULT约束 提供 报名 的默认值 ALTERTABLEStuCouADDCONSTRAINTDF StuCou StateDEFAULT 报名 FORState SQLSERVER2005 28 删除约束 格式 AlterTabletable nameDROPCONSTRAINTconstraint name SQLSERVER2005 29 第三节规则 rule 作用实现数据完整性 在向表的某列插入或更新数据时 用它来限制输入值的取值范围 SQLSERVER2005 30 规则与CHECK约束的区别 在一列上只能用一个规则 但可以使用多个CHECK约束 规则只需定义一次 就可以用于多个列 还可以用于用户自定义的数据类型 而CHECK约束只能应用于它定义的列 SQLSERVER2005 31 创建规则先创建规则 语法如下 CREATERULE规则名称AS条件表达式再绑定到列或用户自定义数据类型上 语法如下 EXECUTE sp bindrule 规则名称 表名 字段名 用户自定义数据类型 SQLSERVER2005 32 例 使用T SQL语句在Xk数据库中创建名为CreditRule的规则 并将其绑定到Course表的Credit列 创建规则CREATERULECreditRuleAS x 1AND x 5 绑定规则到Course表的Credit列EXECsp bindruleCreditRule Course Credit SQLSERVER2005 33 删除规则先解除 sp unbindrule 绑定 语法如下 EXECUTE sp unbindrule 表名 字段名 用户自定义数据类型 再删除规则 语法如下 DROPRULE规则名称 SQLSERVER2005 34 例 使用T SQL删除前列中创建的规则 解除绑定EXECsp unbindrule Course Credit 删除规则DROPRULECreditRule SQLSERVER2005 35 第四节默认值 default 默认值是一种独立存储的数据库对象 其作用和默认约束是一样的 在创建之后 可以被多次用到表中的一列或多列上 也可以用到用户自定义的数据类型 但是 删除表的时候默认约束会自动删除 而默认对象不会 默认值可以是常量 内置函数或数学表达式 SQLSERVER2005 36 实现方法先创建 语法如下 CREATEDEFAULT默认值名称AS常量表达式再绑定 sp bindefault 到列或用户自定义数据类型 EXECUTE sp bindefault 默认值名称 表名 字段名 用户自定义数据类型 SQLSERVER2005 37 例 创建一个名为UnsureDefault的默认值 默认值为 待定 然后绑定到表Course的列Teacher 创建默认值CREATEDEFAULTUnsureDefaultAS 待定 绑定默认值到Course表的TeacherEXECsp bindefaultUnsureDefault Course Teacher SQLSERVER2005 38 删除默认值解除默认值绑定的列或用户自定义数据类型 sp unbindefault 表名 列名 删除该默认值 DROPDEFAULT默认值名称 SQLSERVER2005 39 例 使用T SQL语句删除前例创建的默认值 解除绑定EXECsp unbindefault Course Teacher 删除默认值DROPDEFAULTUnsureDefault SQLSERVER2005 40 第五节标识列 对任何表都可创建包含系统所自动生成序号值的一个标识字段 该序号值唯一标识表中的一行 每个表只能有一个字段设置成标识属性
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年护理基础题库试卷及答案
- 2025年科目四模拟考试试题及答案
- 2025-2030年全球新能源产业产业政策对区域协调发展影响报告
- 2025版房屋租赁合同示范文本
- 2025年中国干发帽行业市场全景分析及前景机遇研判报告
- 2025年中国非对称设计游戏手柄行业市场全景分析及前景机遇研判报告
- 《离婚冷静期间共同财产分割咨询协议》
- 夫妻财产分割与子女抚养权变更法律合同
- 电子合同在租赁合同中的法律效力认定与风险控制
- 知识产权置换股权合作助力智能制造产业发展协议
- 智能化公共广播系统
- 马克思列宁主义
- 成人癌性疼痛护理-中华护理学会团体标准2019
- 演示文稿小儿雾化吸入
- 生活中的理财原理知到章节答案智慧树2023年暨南大学
- 知行合一-王阳明传奇课件
- T-CSAE 204-2021 汽车用中低强度钢与铝自冲铆接 一般技术要求
- 节水灌溉技术总结
- 《绿色建筑概论》整套教学课件
- itop-4412开发板之精英版使用手册
- 建筑设计防火规范2001修订版
评论
0/150
提交评论