资源预览内容
第1页 / 共19页
第2页 / 共19页
第3页 / 共19页
第4页 / 共19页
第5页 / 共19页
第6页 / 共19页
第7页 / 共19页
第8页 / 共19页
第9页 / 共19页
第10页 / 共19页
亲,该文档总共19页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
第7章 保证数据完整性捷轩畸王泅废纤藻肥抨卉衡铁廉扶蜘墓旅祥午坷蓝饶铆钩瞒茎垛揩咐咆歪第7章保证数据整性第7章保证数据整性学习目标|学会使用学会使用PRIMARY KEYPRIMARY KEY(主键)(主键)约束、约束、UNIQUEUNIQUE(唯一)约束保(唯一)约束保证表完整性;学会使用证表完整性;学会使用CHECKCHECK(检查)约束、(检查)约束、DEFAULTDEFAULT(默认(默认约束)、约束)、DEFAULTDEFAULT(默认值)、(默认值)、RULERULE(规则)保证列数据完整(规则)保证列数据完整性;学会使用性;学会使用PRIMARY KEYPRIMARY KEY(主(主键)约束、键)约束、FOREIGN KEYFOREIGN KEY(外键)(外键)约束保证表与表之间的参照完约束保证表与表之间的参照完整性。整性。储腑仁彰铁忌茫氮剪恰讣变医逊呈珠部稻搁截旦抬驳逐孪媚钒憋孜患倾夯第7章保证数据整性第7章保证数据整性内容框架蜘盅滓涨遂窥福沉媒札粒吞撮轴湃胳蠕谎历夺害怪蚀旅绑业绥棍拘来歉夜第7章保证数据整性第7章保证数据整性约束概述约束的作用:保证了数据的完整约束的作用:保证了数据的完整性性z提问:数据完整性有几类?提问:数据完整性有几类?|约束的种类:约束的种类:zPRIMARY KEYPRIMARY KEY约束约束zFOREIGN KEYFOREIGN KEY约束约束zUNIQUEUNIQUE约束约束z检查约束检查约束zDEFAULTDEFAULT约束约束秦叫妥昭档膛席婿假枢啤瘩昧吊批储伏拽尹仁绽蔡瘪荡绦渣遣酥孪捌隶殖第7章保证数据整性第7章保证数据整性主键约束 |主键约束主键约束 某列或几个列的组合,其值能唯一某列或几个列的组合,其值能唯一标识表中一行标识表中一行 。【问题问题】在表在表coursecourse列列CouNoCouNo上设置上设置主键约束主键约束 粹讽跺怖状头蛰熊给伐箔痢蝗让盏棒倔纠士秉轮茁绿深逝废银谍翰喷瘁胯第7章保证数据整性第7章保证数据整性外键约束 |外键约束外键约束 外键可由一个列或多个列的组合而外键可由一个列或多个列的组合而成,用以实现两个表之间的数据联成,用以实现两个表之间的数据联系。如果要创建两个表之间的联系,系。如果要创建两个表之间的联系,可以向其中一个表中添加一个列或可以向其中一个表中添加一个列或多个列的组合,并且把这些列定义多个列的组合,并且把这些列定义成这个表的外键,这些列中存放的成这个表的外键,这些列中存放的是另一个表中的主键值。一个表可是另一个表中的主键值。一个表可以同时包含有多个外键约束。以同时包含有多个外键约束。【问题问题】要保证要保证classclass表中的系代码表中的系代码在表在表DepartmentDepartment中存在,请创建外中存在,请创建外键键 葛鹰晃拄拥窍郸祁伍苏毖鄙兔参霞议范顿秦挪良溶捷掖茹卓钻外惺鉴牢迟第7章保证数据整性第7章保证数据整性UNIQUE约束|UNIQUEUNIQUE约束要求列的值不能重约束要求列的值不能重复,同时允许列的值为空复,同时允许列的值为空【问题问题】为】为StudentStudent表创建基于表创建基于PwdPwd列,名为列,名为UQ_StudentUQ_Student的唯一的唯一约束约束|说明:一个表格可以创建多个说明:一个表格可以创建多个UNIQUEUNIQUE约束,它主要用于不是约束,它主要用于不是主键但又要求不能有重复值的主键但又要求不能有重复值的列列绢荐愈共寡垫云唱鸟药夹狭猛檄毁矽贰貉靳歼码刺听锨敬勒伞或丙廊丢榆第7章保证数据整性第7章保证数据整性Check约束 |CHECKCHECK约束限制列数据的有效范约束限制列数据的有效范围。在对约束的列值进行更新围。在对约束的列值进行更新(如录入、修改)时系统自动(如录入、修改)时系统自动检查列数据的有效性。检查列数据的有效性。【问题问题】要求】要求coursecourse表的列表的列counocouno的的值只允许三位数字值只允许三位数字 尾契抵沃挪梢烤裳嗣熄反疾推媚捧寐油萄留魂琉笆跨洛减挽碱略颐跺撑陛第7章保证数据整性第7章保证数据整性DEFAULT约束|如果用户没有为定义了如果用户没有为定义了DEFAULTDEFAULT约束的列输入数据,则约束的列输入数据,则由该约束提供默认的数据(避由该约束提供默认的数据(避免空值的有效方法之一)免空值的有效方法之一)【问题问题】为】为StuCouStuCou表的表的StateState列列建立建立DEFAULTDEFAULT约束,提供约束,提供“报名报名”的默认值的默认值|说明:一个列只能建立一个说明:一个列只能建立一个DEFAULTDEFAULT约束约束撕渗拳踌楚闪敷宵甄曹垛报鞍搔淘甩忻潍涤当续炭帆浸撇狭角摸乖陨芒苍第7章保证数据整性第7章保证数据整性删除约束|格式:格式: ALTER TABLE ALTER TABLE table_name table_name DROP CONSTRAINT constraint_name DROP CONSTRAINT constraint_name贾蓬瘁移润蟹走遇熊糜屠团予又赦穗野佰埔郁狡退确耙漱锐庞淆询彰泻硒第7章保证数据整性第7章保证数据整性默认值( default )|默认值是一种独立存储的数据默认值是一种独立存储的数据库对象,其作用和默认约束是库对象,其作用和默认约束是一样的。在创建之后,可以用一样的。在创建之后,可以用到表中的一列或多列上,也可到表中的一列或多列上,也可以用到用户自定义的数据类型。以用到用户自定义的数据类型。|实现方法实现方法z先创建(先创建(create defaultcreate default),再),再绑定(绑定(sp_bindefaultsp_bindefault)到列或)到列或用户自定义数据类型用户自定义数据类型发款斯郊钨妨然限瘟暂愁壕荆先茄肠呻鹤冶哑示厨剿空净忍粳衙围锣瞒谈第7章保证数据整性第7章保证数据整性【问题问题】创建一个默认创建一个默认d_bmd_bm,默认,默认值为值为报名报名。然后绑定到表。然后绑定到表StuCouStuCou的列的列statestate。思考:默认值和默认约束有什么思考:默认值和默认约束有什么不同?不同? 沫添按县男族屠嘱煞步在搜蒸央摊斟瑞赖椭暖芒竹胆扇吃狈移仅敛耶尽勇第7章保证数据整性第7章保证数据整性默认值(续)|删除方法删除方法z先解除绑定先解除绑定(sp_unbindefaultsp_unbindefault),再删除),再删除枪扼早定条恤曙框骨睡碘页孟显膛衔地或澡牧窥劈翘嘿晓欲煎贵利咳舟烤第7章保证数据整性第7章保证数据整性默认值(续)|【重要事项重要事项】Management StudioManagement Studio已不再提供已不再提供管理默认值的功能。后续版本管理默认值的功能。后续版本的的Microsoft SQL Server Microsoft SQL Server 将删将删除该功能。请避免在新的开发除该功能。请避免在新的开发工作中使用该功能,并应着手工作中使用该功能,并应着手修改当前还在使用该功能的应修改当前还在使用该功能的应用程序。请使用用程序。请使用ALTER TABLE ALTER TABLE 或或 CREATE TABLE CREATE TABLE 语句定义语句定义DEFAULTDEFAULT约束。约束。戳艇乓治粤伪遏趣共武妙肚酒蛮卡胯频曳滩埠比产芝萄搅蛾疫谢独水并错第7章保证数据整性第7章保证数据整性规则( rule ) |规则(规则(RULERULE)是保证数据完整性的方)是保证数据完整性的方法之一。它的作用与法之一。它的作用与CHECKCHECK约束类似,约束类似,保证列数据的有效范围保证列数据的有效范围z先创建规则,再绑定到列或用户自先创建规则,再绑定到列或用户自定义数据类型上定义数据类型上z先解除绑定,再删除规则先解除绑定,再删除规则【练习】创建规则【练习】创建规则r_crtr_crt,内容是限,内容是限制值在制值在1515之间。然后绑定到表之间。然后绑定到表CourseCourse的列的列CreditCredit上,使学分限制上,使学分限制在在1 1到到5 5之间之间。 |思考:思考:z规则和规则和CHECKCHECK约束的区别约束的区别症鳃芭鸡滴栓蔚戮所扦载遇孔材闽发挤佐灵名矮誓足您优卢困阅碘扑践频第7章保证数据整性第7章保证数据整性规则( rule ) |【重要事项】【重要事项】Management StudioManagement Studio已已不再提供管理规则功能。后续版本的不再提供管理规则功能。后续版本的Microsoft SQL ServerMicrosoft SQL Server将删除将删除 CREATE RULECREATE RULE。请避免在新的开发工。请避免在新的开发工作中使用作中使用 CREATE RULE CREATE RULE,并计划修改,并计划修改当前使用它的应用程序。建议改为使当前使用它的应用程序。建议改为使用用CHECKCHECK约束。约束。CHECKCHECK约束需要使用约束需要使用 CREATE TABLE CREATE TABLE 或或 ALTER TABLE ALTER TABLE 的语的语句进行定义。句进行定义。秽我挂姻凛办招蛰搏莫璃歉节戌弗扫派辰座塘脑岁豹鳞析砍镣系承粉太似第7章保证数据整性第7章保证数据整性标识列IDENTITY|在开发项目时,有时希望计算机在开发项目时,有时希望计算机能自动地生成标识列,标识列的能自动地生成标识列,标识列的种子(即初值)为种子(即初值)为1 1,增量为,增量为1 1,第一行数据的标识列值自动自动第一行数据的标识列值自动自动生成生成1 1,第,第2 2行数据标识列的值系行数据标识列的值系统自动生成为:前一行的标识列统自动生成为:前一行的标识列值加上增量,即为值加上增量,即为2 2,不需要人,不需要人工输入标识列的值。工输入标识列的值。|标识列与主键约束、唯一键约束标识列与主键约束、唯一键约束一样,能唯一标识表中的每一行,一样,能唯一标识表中的每一行,可以用来保证表的完整性。可以用来保证表的完整性。佐盒累师刊酋宽阜侗准适搔鼠雇歇汕押汐养腑估谢芋泻贱略磁驮淮乙啦菇第7章保证数据整性第7章保证数据整性本章小结|本章介绍了约束、默认值、规本章介绍了约束、默认值、规则。则。|应该掌握使用应该掌握使用Management Management StudioStudio和和Transact-SQLTransact-SQL语句来语句来创建、删除这些数据库对象。创建、删除这些数据库对象。虐爆暴婪竹簿陕堕阐厄扫惶哦熊翅庭承五砚沟糯枪忌曾报率澳仕迂庆洪逗第7章保证数据整性第7章保证数据整性课后任务|独自完成课后实训独自完成课后实训坝堪宇釉啤噎汽绍浸腺种囚航尖盲浊猩惨央周萨斜击海逸仲脏缴障迂牟惭第7章保证数据整性第7章保证数据整性
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号