欢迎来到天天文库
浏览记录
ID:27022968
大小:545.00 KB
页数:19页
时间:2018-11-30
《保证数据完整性》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第7章保证数据完整性学习目标学会使用PRIMARYKEY(主键)约束、UNIQUE(唯一)约束保证表完整性;学会使用CHECK(检查)约束、DEFAULT(默认约束)、DEFAULT(默认值)、RULE(规则)保证列数据完整性;学会使用PRIMARYKEY(主键)约束、FOREIGNKEY(外键)约束保证表与表之间的参照完整性。内容框架约束概述约束的作用:保证了数据的完整性提问:数据完整性有几类?约束的种类:PRIMARYKEY约束FOREIGNKEY约束UNIQUE约束检查约束DEFAULT约束主键约束主键约束某列或几个列的组合,其值能唯一标识表中一行。【问题】在表cours
2、e列CouNo上设置主键约束外键约束外键约束外键可由一个列或多个列的组合而成,用以实现两个表之间的数据联系。如果要创建两个表之间的联系,可以向其中一个表中添加一个列或多个列的组合,并且把这些列定义成这个表的外键,这些列中存放的是另一个表中的主键值。一个表可以同时包含有多个外键约束。【问题】要保证class表中的系代码在表Department中存在,请创建外键UNIQUE约束UNIQUE约束要求列的值不能重复,同时允许列的值为空【问题】为Student表创建基于Pwd列,名为UQ_Student的唯一约束说明:一个表格可以创建多个UNIQUE约束,它主要用于不是主键但又要求不能有
3、重复值的列Check约束CHECK约束限制列数据的有效范围。在对约束的列值进行更新(如录入、修改)时系统自动检查列数据的有效性。【问题】要求course表的列couno的值只允许三位数字DEFAULT约束如果用户没有为定义了DEFAULT约束的列输入数据,则由该约束提供默认的数据(避免空值的有效方法之一)【问题】为StuCou表的State列建立DEFAULT约束,提供“报名”的默认值说明:一个列只能建立一个DEFAULT约束删除约束格式:ALTERTABLEtable_nameDROPCONSTRAINTconstraint_name默认值(default)默认值是一种独立存
4、储的数据库对象,其作用和默认约束是一样的。在创建之后,可以用到表中的一列或多列上,也可以用到用户自定义的数据类型。实现方法先创建(createdefault),再绑定(sp_bindefault)到列或用户自定义数据类型【问题】创建一个默认d_bm,默认值为’报名’。然后绑定到表StuCou的列state。思考:默认值和默认约束有什么不同?默认值(续)删除方法先解除绑定(sp_unbindefault),再删除默认值(续)【重要事项】ManagementStudio已不再提供管理默认值的功能。后续版本的MicrosoftSQLServer将删除该功能。请避免在新的开发工作中使用
5、该功能,并应着手修改当前还在使用该功能的应用程序。请使用ALTERTABLE或CREATETABLE语句定义DEFAULT约束。规则(rule)规则(RULE)是保证数据完整性的方法之一。它的作用与CHECK约束类似,保证列数据的有效范围先创建规则,再绑定到列或用户自定义数据类型上先解除绑定,再删除规则【练习】创建规则r_crt,内容是限制值在1~5之间。然后绑定到表Course的列Credit上,使学分限制在1到5之间。思考:规则和CHECK约束的区别规则(rule)【重要事项】ManagementStudio已不再提供管理规则功能。后续版本的MicrosoftSQLServ
6、er将删除CREATERULE。请避免在新的开发工作中使用CREATERULE,并计划修改当前使用它的应用程序。建议改为使用CHECK约束。CHECK约束需要使用CREATETABLE或ALTERTABLE的语句进行定义。标识列IDENTITY在开发项目时,有时希望计算机能自动地生成标识列,标识列的种子(即初值)为1,增量为1,第一行数据的标识列值自动自动生成1,第2行数据标识列的值系统自动生成为:前一行的标识列值加上增量,即为2,不需要人工输入标识列的值。标识列与主键约束、唯一键约束一样,能唯一标识表中的每一行,可以用来保证表的完整性。本章小结本章介绍了约束、默认值、规则。应
7、该掌握使用ManagementStudio和Transact-SQL语句来创建、删除这些数据库对象。课后任务独自完成课后实训
此文档下载收益归作者所有