数据库完整性设计.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
使用外键(foreign?key)实施完整性 往已经存在的表中添加外键 当将外键约束添加到另一个已经存在数据的列上时,在默认情况下,sql?server将会自动检查表中已经存在的数据,以确保所有的数据都与主键保持一致,或者为null,但是也可以根据需要设置sql?server不对现有的数据进行外键约束检查. NEXT 数据库完整性设计全文共62页,当前为第32页。 使用外键(foreign?key)实施完整性 格式:alter?table?表名?with?check|nocheck? ?????????add?constraint?外键名?foreign?key(指定列名)?references?主键表名(创建外键的列名)? ?????????[on?delete?cascade|no?action] no action 是默认 ???????[on?update?cascade|no?action] ??????如在职工表中添加一个外键,仓库号 ????????alter?table?职工?with?check? ????????add?constraint?仓库号?foreign?key(仓库号)?references?仓库(仓库号) ????????on?delete?cascade ????????on?update?cascade ????修改或删除外键 修改外键,必须把一个键删除之后再重新建一个外键.删除外键的格式为:alter?table?表名?drop?外键名 NEXT 数据库完整性设计全文共62页,当前为第33页。 范数据库完整性设计 H:使用规则(rule) 规则是一组使用transact--SQL书写的条件语句,它可和列捆绑在一起,当向绑定有规则的数据列上插入或修改值时,规则会检测修改数据的完整性. NEXT 数据库完整性设计全文共62页,当前为第34页。 使用规则(rule) 创建规则 ???格式:create?rule?规则名?as?规则描述 ????????规则描述:规则描述的条件表达式中可以包含数学运算符,关系运算符,以及诸如:in,like,between等关键字 ???比如:create?rule?w? ????????as?@k=20?and?@k=50?[创建一个规则让k的取值在20----50之间] ???说明:1:规则描述用来定义规则的确切含义,规则中不能引用表中的数据列以及别的数据库对象. ????????2:规则应该包括一个局部变量,而且必须只能够包含一个变量必须以@开头. ???再如:create?rule?sex????????????????????create?rule?te? ????????as?@sex?in(\男\,\女\)??????????????as?@te?like?\027-%\ 通过在企业管理器来创建规则 NEXT 数据库完整性设计全文共62页,当前为第35页。 使用规则(rule) 规则(rule)与约束(check)的区别 1:CHECK约束比规则更简明,一个列只能应用一个规则,但是却可以应用多个CHECK约束. ?????举例:先后在一个表中的一个列中绑定两个规则,看一下是否能在一个列中绑定多个规则. ??????????先后在一个表中的一个列中创建多个约束,看一下一个列是否可以有多个约束. 2:CHECK约束作为CREATE?TABLE语句的一部分进行指定,而规则必须单独的创建,然后绑定到列上. NEXT 数据库完整性设计全文共62页,当前为第36页。 使用规则(rule) NEXT 使用规则: ???A:要使规则生效,必须将它与数据库的某个对象绑定,否则规则毫无用处. ???B:数据库中的对象只有用户自定义数据类型和表中的列可以.其它任何对象都不能邦定. ???C:如果对一个表中某个列绑定了规则,则该列必须遵守规则的定义,如果把一个用户自定义类型绑定了规则,则所有引用该类型的列将都受规则约束. 数据库完整性设计全文共62页,当前为第37页。 使用规则(rule) NEXT ?1:使用企业管理器让规则与用户自定义数据类型和表中的某个列绑定 ?????2:使用sql语句[sp_bindrule?规则名,\表名.列名\] ???????比如:sp_bindrule?sex?,\work.性别\?[让work的性别列与规则sex绑定] ???????说明:1:可以直接使用sp_bindrule将某个规则应用到一个列上,如果该列原先绑定了一个规则,则新的规则会覆盖原来的规则??????? 数据库完整性设计全文共62页,当前为第38页。 [证明在一个列上只能绑定一个规则] ????????????2:规则不应用于已经存在的该

文档评论(0)

武松 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档