SQLServer中约束介绍

SQLServer中约束介绍

ID:39468451

大小:78.50 KB

页数:7页

时间:2019-07-04

SQLServer中约束介绍_第1页
SQLServer中约束介绍_第2页
SQLServer中约束介绍_第3页
SQLServer中约束介绍_第4页
SQLServer中约束介绍_第5页
资源描述:

《SQLServer中约束介绍》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、摘要对于SQLServer中的约束,想必大家并不是很陌生。但是约束中真正的内涵是什么,并不是很多人都很清楚的。本文以详细的文字来介绍了什么是约束,以及如何在数据库编程中应用和使用这些约束,来达到更好的编程效果。(本文部分内容参考了SQLServer联机手册)内容 数据完整性分类 实体完整性 域完整性 引用完整性 用户定义完整性 PRIMARYKEY约束 DEFAULT约束 CHECK约束 UNIQUE约束 FOREIGNKEY约束正文在数据库管理系统中,保证数据库中的数据完整性是非常重要的。所谓数据

2、完整性,就是指存储在数据库中数据的一致性和正确性。约束定义关于列中允许值的规则,是强制完整性的标准机制。使用约束优先于使用触发器、规则和默认值。查询优化器也使用约束定义生成高性能的查询执行计划。SQLServer联机丛书中,将数据完整性解释如下:“存储在数据库中的所有数据值均正确的状态。如果数据库中存储有不正确的数据值,则该数据库称为已丧失数据完整性。”强制数据完整性可确保数据库中的数据质量。例如,如果输入了employee_id值为123的职员,那么该数据库不应允许其他职员使用同一ID值。如果计划

3、将employee_rating列的值范围设定为从1到5,则数据库不应接受6。如果表有一dept_id列,该列存储职员的部门编号,则数据库应只允许接受公司中的有效部门编号。数据完整性分类在SQLServer中,根据数据完整新措施所作用的数据库对象和范围不同,可以将数据完整性分为以下几种。 实体完整性 域完整性 引用完整性 用户定义完整性SQLServer联机丛书中指明:“对表进行计划有两个重要步骤:标识列的有效值和确定如何强制列中的数据完整性。”实体完整性实体完整性简单的说,就是将表中的每一行看作一

4、个实体。实体完整性要求表的标示符列或主键的完整性。可以通过建立唯一索引、PRIMARYKEY约束、UNIQUE约束,以及列的IDENTITY属性来实施实体完整性。域完整性域完整性是指给定列的输入有效性。要求表中指定列的数据具有正确的数据类型、格式和有效的数据范围。强制域有效性的方法有:限制类型(通过数据类型)、格式(通过CHECK约束和规则)或可能值的范围。域完整性通过FOREIGNKEY约束、CHECK约束、DEFAULT定义、NOTNULL定义和规则来实现。引用完整性引用完整性又称参照完整性。引

5、用完整性维持被参照表和参照表之间的数据一致性,他通过主键(PRIMARYKEY)约束和外键(FOREIGNKEY)约束来实现。引用完整性确保键值在所有表中一致。这样的一致性要求不能引用不存在的值,如果键值更改了,那么在整个数据库中,对该键值的所有引用要进行一致的更改。在被参照表中,当其主键值被其他表所参照时,该行不能被删除也不允许改变。在参照表中,不允许参照不存在的主键值。强制引用完整性时,SQLServer禁止用户进行下列操作: 当主表中没有关联的记录时,将记录添加到相关表中。 更改主表中的值并导

6、致相关表中的记录孤立。 从主表中删除记录,但仍存在与该记录匹配的相关记录。例如,对于pubs数据库中的sales和titles表,引用完整性基于sales表中的外键(title_id)与titles表中的主键(title_id)之间的关系。用户定义完整性用户定义完整性使您得以定义不属于其它任何完整性分类的特定业务规则。所有的完整性类型都支持用户定义完整性。建立和使用约束的目的是保证数据的完整性,约束是SQLServer强制实行的应用规则,他能够限制用户存放到表中数据的格式和可能值。约束作为数据库定义

7、的一部分在CREATETABLE语句中声明,所以又称做声明完整性约束。约束独立于表结构,可以在不改变表结构情况下,通过ALTERTABLE语句来添加或者删除。在删除一个表时,该表所带的所有约束定义也被随之删除。PRIMARYKEY约束在数据库的每个表中,经常有通过一列或者多个列,唯一的标识表中的每一行。就好像我们平时使用的身份证,能够唯一的标识每个人一样。这样的一列或者多个列,被称为主键,通过主键,可以强制表的实体完整性。每一个表中只有一个PRIMARYKEY约束,更简单的说,他是通过建立唯一索引保

8、证指定列的实体完整性。在使用PRIMARYKEY约束时,该列的空值属性必须定义为NOTNULL,也就是说拥有主键的那一列,不能为空。由于PRIMARYKEY约束确保唯一数据,所以经常用来定义标识列。标识列就是表中已经指派了标识属性的列。标识属性生成唯一数字。有些刚刚开始接触SQLServer编程的技术爱好者通常会有这样的疑问,为什么非要在一个表里面建立主键?其实答案是很明显的,建立主键不仅可以保证表内数据的完整性,而且在为表建立主键的同时,MicrosoftSQLSe

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。