数据库技术及应用 (6).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文档。上传文档
查看更多
其中: table_name:需要增加惟一约束的表的名称; constraint_name:需要增加的惟一约束的名称; column_name:表中需要增加惟一约束的单个或多个列的名称。 [例6.8]在数据库 书城 中,在表 供应商档案 上的 电话 列上添加一个 UNIQUE约束。 具体命令如下: USE 书城 ALTER TABLE 供应商档案 ADD CONSTRAINT U_电话 UNIQUE(电话) Go 6.3.5 FOREIGN KEY约束 语法为: ALTER TABLE table_name ADD CONSTRAINT constraint_name FOREIGN KEY {(column_name[,…])} REFERENCES ref_table{(column_name[,…])} [ON DELETE { CASCADE | N0 ACTION}] [ON UPDATE { CASCADE | NO ACTION}] 其中各参数的意义如下: table_name:需要增加FOREIGN KEY约束的表的名称; constraint_name:需要增加的FOREIGN KEY约束的名称; ref_table:被FOREIGN KEY约束参照的表的名称; column_name:需要建立FOREIGN KEY 约束的所在列的列名或被参照的列的列 名。 ON DELETE NO ACTIOnN:指定如果试图删除某行,而该行含有由其他表的现有行中的外键所引用的键,则产生错误并回滚DELETE。 ON UPDATE NO ACTION:指定如果试图更新某行中的键值,而该行含有由其他表的现有行中的外键所引用的键,则产生错误并回滚UPDATE。CASCADE允许在表间级联键值的删除或更新操作,这些表的外 键关系可追溯到执行修改的表。不能为任何具有timestamp列的外键和主键指定 CASCADE。 ON DELETE CASCADE:指定如果试图删除某行,而该行含有由其他表的现有行中的外键所引用的键,则也将删除所有包含那些外键的行。如果在目标表上也定义了级联引用操作,则对从那些表中删除的行同样采取指定的级联操作。 ON UPDATE CASCADE:指定如果试图更新某行中的键值,而该行的键值由其他表的现有行中的外键所引用,则所有外键值 也将更新成为该键指定的新值。如果在目标表上也定义了级联引用操作,则对在那些表中更新的键值同样采取指定的级联 操作。 使用FOREIGN KEY约束时,还应注意到如下事项: 在FOREIGN KEY语句中指定的列数和数据类型必须和在REFERENCES子句中的列数和数据类型相匹配; 在同一张表中相互参照时,可以使用没有 FOREIGN KEY子句的REFERENCE 子句。 6.4 创建约束的其他选项 6.4.1 使用WITH NOCHECK选项 当用户需要在一个已经存在大量数据的表上定义约束时,SQL Server将自动检验存在数据以证明它们满足约束的要求。此时,用户可以通过使用“WITH NOCHECK”选项来禁止SQL Server对现有数据的约束检查。 能禁止约束检查的只有CHECK和FOREIGN KEY约束。 命令如下: ALTER TABLE table_name WITH NOCHECK ADD CONSTRAINT constraint_name [CHECK(logical_expression)] [FOREIGN KEY(column name[,…]) REFERENCES reftable_name(refcol_name[,…])] [例6.9] 假设数据库表“供应商档案”中已经存在大量记录,需要在“电话”列上添加一个CHECK约束,以保证所有电话号码都以数字6278开头。 具体命令如下: USE 书城 ALTER TABLE 供应商档案 WITH NOCHECK ADD CONSTRAINT CK_电话 CHECK(Telcode like 6278[0—9][0—9][0—9][0—9]) GO 6.4.2 使用NOCHECK选项 当用户需要向在一张定义有约束的表中插入新记录或修改记录时,SQL Server将自动检验新数据以确定它们满足表上约束的要求。此时,用户可以通过使用“NOCHECK”选项来禁止SQL Server对新数据的约束检查。 能禁止新数据检查的也只有CHECK和FOREIGN KEY约束。 命令如下: ALTER TABLE table_name [CHECK | NO

文档评论(0)

132****9295 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档