首页 / MSSQL / SQL Server数据完整性
SQL Server数据完整性
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了SQL Server数据完整性,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1942字,纯文字阅读大概需要3分钟。
内容图文
![SQL Server数据完整性](/upload/InfoBanner/zyjiaocheng/1092/e1f532358dad4b6086f88260064e9dc0.jpg)
我们在学习数据库的过程中,经常会听到两个概念:数据冗余和数据完整性。数据冗余是指数据库中存在一些重复的数据,数据完整性是指数据库中的数据能够正确反应实际情况,我们说,为了性能着想,数据库中允许有一些数据冗余,但是要保持数据的完整性。 数据完整性 =可靠性+准确性,这里我们要清楚以下几点: ? 数据存放在表中 ? “数据完整性的问题大多是由于设计引起的” ? 创建表的时候,就应当保证以后数据输入是正确的 ——错误的数据、不符合要求的数据不允许输入 本质而言,保证数据的完整性 = 实施完整性约束 完整性包括 1. 实体完整性 a) 数据行不能存在重复 2. 域完整性 a) 实现了对输入到特定列的数值的限制 3. 引用完整性 a) 要求子表中的相关项必须在主表中存在 b) 如果建立了主表和子表的关系,则: i. 子表中的相关项目的数据,在主表中必须存在; ii. 主表中相关项的数据更改了,则子表对应的数据项也应当随之 iii. 更改; iv. 在删除子表之前,不能够删除主表; 4. 自定义完整性 实际上,SQL Server创建表的过程是规定数据列的属性的过程,同时也是实施数据完整性(包括实体完整性、引用完整性和域完整性等)保证的过程。创建表包括选择字段名称、数据类型、定义是否为空、设置默认值、主键和外键关系、检查约束等。表中没有合适的列作为主键,可以创建标识列。 SQL Server中存在五种约束: ? 约束的目的:确保表中数据的完整型 ? 常用的约束类型: – 主键约束(PrimaryKeyConstraint):要求主键列数据唯一,并且不允许为空 – 唯一约束(UniqueConstraint):要求该列唯一,允许为空,但只能出现一个空值。 – 检查约束(CheckConstraint):某列取值范围限制、格式限制等,如有关年龄的约束 – 默认约束(DefaultConstraint):某列的默认值,如我们的男性学员较多,性别默认为“男” – 外键约束(ForeignKeyConstraint):用于两表间建立关系,需要指定引用主表的那列 添加约束的语法: ALTERTABLE 表名 ADDCONSTRAINT 约束名 约束类型 具体的约束说明 q 约束名的取名规则推荐采用:约束类型_约束字段 q 主键(PrimaryKey)约束:如 PK_stuNo q 唯一(UniqueKey)约束:如 UQ_stuID q 默认(DefaultKey)约束:如 DF_stuAddress q 检查(CheckKey)约束:如 CK_stuAge q 外键(ForeignKey)约束:如 FK_stuNo 下面我们来给前面建立的学员信息表stuInfo添加约束: /*添加主键约束(stuNo作为主键)*/ALTERTABLE stuInfo ADDCONSTRAINT PK_stuNo PRIMARYKEY (stuNo) /*添加唯一约束(因为每人的身份证号全国唯一)*/ALTERTABLE stuInfo ADDCONSTRAINT UQ_stuID UNIQUE (stuID) /*添加默认约束(如果地址不填,默认为“地址不详”)*/ALTERTABLE stuInfo ADDCONSTRAINT DF_stuAddress DEFAULT (‘地址不详‘) FOR stuAddress /*添加检查check约束,要求年龄只能在15-40岁之间*/ALTERTABLE stuInfo ADDCONSTRAINT CK_stuAge CHECK(stuAge BETWEEN15AND40) /*添加外键约束(主表stuInfo和从表stuMarks建立关系,关联字段为stuNo)*/ALTERTABLE stuMarks ADDCONSTRAINT FK_stuNo FOREIGNKEY(stuNo) REFERENCES stuInfo(stuNo) GO 如果错误地添加了约束,我们还可以删除约束 删除约束的语法 ALTERTABLE 表名 DROPCONSTRAINT 约束名 例如:删除stuInfo表中地址默认约束 ALTERTABLE stuInfo DROPCONSTRAINT DF_stuAddress OK,有了完整性约束,数据完整性就有了保障,数据库中的数据也就能够正确地反应实际情况了。那我们上面又提到了一个主从表的概念,有人可能不太明白,下面文章我们再来介绍一下。
原文:http://www.cnblogs.com/ruishuang208/p/4094027.html
内容总结
以上是互联网集市为您收集整理的SQL Server数据完整性全部内容,希望文章能够帮你解决SQL Server数据完整性所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。