数据库实现数据完整性.pptVIP

  1. 1、本文档共49页,可阅读全部内容。
  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文档。上传文档
查看更多
数据库实现数据完整性

第5章 实现数据完整性 数据完整性的类型 约束 禁用约束 默认值和规则 决定使用何种强制方法 推荐操作 数据完整性的类型 数据完整性的类型 数据完整性 指的是数据库中存储的数据的一致性和准确性 数据完整性的类型:域完整性、实体完整性、引用完整性 域完整性 域(或列)完整性是指对列指定一组有效的值并决定是否可为空值 实体完整性 实体(或表)完整性要求表中的所有行都有一个惟一的标识符,称为主键值 引用完整性 引用完整性确保主键(在被引用表中)和外键(在引用表中)之间的关系得到保持 第5章 实现数据完整性 数据完整性的类型 约束 禁用约束 默认值和规则 决定使用何种强制方法 推荐操作 约束 决定使用何种约束 约束的类型 决定使用何种约束 创建约束 使用 CREATE TABLE 或者 ALTER TABLE CREATE TABLE 是在创建表时创建约束 ALTER TABLE 是在一个已有的表上创建约束 可以添加约束到已有数据的表上 可添加单列或多列约束 若约束应用于单列,称为列级约束 若约束引用了多列,称为表级约束,即使它并没有引用表中的所有列 使用约束的注意事项 可直接在表上创建、更改和删除约束,而不必删除并重建表 应该在应用程序和事务内建立错误检查逻辑,以测试是否违反了某个约束 SQL Server 里的约束只是“最后防线” 当给一个表添加约束的时候,SQL Server 将检查现有数据是否违反约束 建议创建约束的时候指定名称,否则系统将为约束自动产生一个复杂的名称 名称必须惟一,且符合 SQL Server 标识符的规则 查看约束的信息 系统存储过程:sp_helpconstraint、sp_help 信息模式视图:check_constraints、referential_constraints、table_constraints 系统表:syscomments、sysreferences、sysconstraints 约束的类型 DEFAULT 约束 CHECK 约束 PRIMARY KEY 约束 UNIQUE 约束 FOREIGN KEY 约束 级联引用完整性 PRIMARY KEY 约束 PRIMARY KEY 约束在表中定义了一个惟一标识每一列的主键 语法:[CONSTRAINT 约束名 ] PRIMARY KEY [CLUSTERED | NONCLUSTERED ] { (列[,...n])} DEFAULT 约束 如果一个列的值在 INSERT 语句中没有指定,DEFAULT 约束将自动输入一个值,可以是预先指定的常量、NULL 或者一个系统函数运行时的值 语法: [CONSTRAINT 约束名] DEFAULT 约束表达式 创建 DEFAULT 约束的两种方法 创建一个默认对象(CREATE DEFAULT),然后使用存储过程 sp_bindefault 将默认绑定到一个列 CREATE TABLE 或 ALTER TABLE 时使用 DEFAUTL 约束 DEFAULT 约束(续) 在创建表时使用default属性 DEFAULT 约束(续) 应用 DEFAULT 约束的注意事项 允许使用常量、函数、系统提供的值:USER、CURRENT_USER、SESSION_USER、SYSTEM_USER 及 CURRENT_TIMESTAMP 例如: ① DEFAULT USER ② DEFAULE (getdate()) 有可能会和 CHECK 约束冲突 常量值外面可以加或者不加括号,字符或者日期常量必须加上单引号或双引号 CHECK 约束 限制输入到指定列的值只能为某些特定值 语法: [CONSTRAINT 约束名] CHECK (逻辑表达式) 两种强制域完整性的方法:CHECK 约束和规则 CHECK 约束定义了一个表达式,若数据修改语句使得表达式值为 FALSE 的话,将拒绝语句执行 规则的功能和 CHECK 约束基本相同,除了语法不同,能力稍弱。 规则可定义一次,然后对多个列分别绑定;而 CHECK 约束则需要对每个列定义。但 CHECK 约束的功能略强一些(例如引用同行中其他列的值和调用系统函数等) CHECK 约束(续) 应用CHECK约束的几种情况 CHECK 约束(续) 应用CHECK 约束的注意事项 一个表可以定义多个CHECK约束,一个列上只允许创建一个列级CHECK约束。 列级 CHECK 约束只能引用被约束的列,表级 CHECK 约束只能引用同一表中的列。 当列上存在规则和一个或多个 CHECK 约束时,将验证所有限制。 UNIQUE 约束 UNIQUE 约束指明列中的任意两行不能有相同的值 语法:[CONSTRAINT 约束名] U

文档评论(0)

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

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

1亿VIP精品文档

相关文档