第六节完整性控制.pptVIP

  1. 1、本文档共74页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
1 第八章 SQL Server的完整性控制 2)使用T-SQL定义外键 CONSTRAINT constraint_name FOREIGN KEY (column_name[,…n]) REFERENCES ref_table [(ref_column[,…n])] 6.2 约束 例:创建一个考勤表,与已存在的“课程基本信息”表相关联。 CREATE TABLE 考勤表( 学号 char(10) not null references 学生基本信息(学号), 姓名 char(10) not null, 课程号 char(2) references 课程基本信息(课程号), 迟到 smallint null, 旷课 smallint null, 请假 smallint null, Constraint pk_考勤 primary key(学号,课程号) ) 6.2 约束 2. 管理外键 1)查看外键信息: sp_fkeys 表名 2)删除外键: ALTER TABLE 表名 6.2 约束 3)添加外键: ALTER TABLE 表名 {ADD {列名列定义 [CONSTRAINT约束名] [[FOREIGN KEY]REFERENCES引用表名[(引用列)] [NOT FOR REPLICATION] } [,…n] |[WITH CHECK|WITH NOCHECK] ADD {[CONSTRAINT外键名] [(列名[,…n])] [[FOREIGN KEY] REPERENCES引用表名 [(引用列)] [NOT FOR REPLICATION]] } [,…n] } 6.2 约束 6.2 约束 4)使用企业管理器管理外键 一个列级检查约束只能与限制的字段有关;一个表级检查约束只能与限制的表中字段有关。 一个表中可以定义多个检查约束。 每个CREATE TABLE语句中每个字段只能定义一个检查约束。 在多个字段上定义检查约束,则必须将检查约束定义为表级约束。 当执行INSERT语句或者UPDATE语句时,检查约束将验证数据。 检查约束中不能包含子查询。 CHECK约束 6.2 约束 1. 创建检查约束常用的操作方法 1).企业管理器操作法。使用企业管理器创建检查约束,与创建唯一性约束类似 。 2)Transact-SQL语句操作法。检查约束的Transact-SQL语句操作法,其语法形式如下: CONSTRAINT constraint_name CHECK [NOT FOR REPLICATION] (logical_expression) 6.2 约束 例:创建一个“学生成绩test”表,其中的“成绩”值为0~100之间。 CREATE TABLE 学生成绩test( 学号 char(10), 课程号 char(2), 成绩 float, 备注 varchar(50), Constraint pk_成绩test PRIMARY KEY(学号), Constraint chk_成绩test check(成绩0 and 成绩=100) ) 6.2 约束 例:创建了一个学生信息表,其中输入性别字段值时,只能接受“F”或者“M”,并且为phonenum字段创建检查约束,限制只能输入类类的数据,而不能随意输入其他数据。 create table student ( Id char(6), name char(6), sex char(2), phonenum int, ) 6.2 约束 constraint chk_sex check(sex in (’F’,’M’)), Constraint chk_phonenum check (phonenum like ‘[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]’) 6.2 约束 2. 管理CHECK约束 1)添加CHECK约束: ALTER TABLE 表名 {ADD 列名列定义CHECK [NOT FOR REPLICATION] (逻辑表达式) |[WITH CHECK|WITH NOCHECK] ADD {CHECK [NOT FOR REPLICATION](逻辑表达式)[,…n]}[,…n] } 注:WITH CHECK 和 WITH NOCHECK表示是否对已存在数据进行CHECK约束检查。 6.2 约束 2)删除CHECK约束: ALTER TABLE 表名 DROP {[CONSTRAINT] CHECK约束名}[,…n] 3)在不删除约束的情况下,禁用约束。语法格式: ALTER TABLE 表名 {CHECK|NO

文档评论(0)

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

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

1亿VIP精品文档

相关文档