- 1、本文档共30页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第五章完整性约束定义
5.4 数据完整性的概念与实施方法;1. 域完整性
域完整性是指一个列的输入有效性,是否允许空值。强制域完整性的方法有:限制类型(通过设定列的数据类型)、格式(通过CHECK约束和规则)或可能值的范围(通过 FOREIGN KEY 约束、CHECK 约束、DEFAULT定义、NOT NULL定义和规则)。
2. 实体完整性
实体完整性是指保证表中所有的行唯一。实体完整性要求表中的所有行都有一个唯一标识符。这个唯一标识符可能是一列,也可能是几列的组合,称之为主键。也就是说,表中主键在所有行上必须取值唯一。强制实体完整性的方法有:索引、UNIQUE约束、PRIMARY KEY约束或 IDENTITY属性 。
3. 参照完整性
参照完整性也叫引用完整性。参照完整性总是保证主关键字(被引用表)和外部关键字(引用表)之间的参照关系。它涉及两个或两个以上表数据的一致性维护。;5.4.2 数据完整性实施方法
1. 声明型数据完整性
声明型数据完整性一般在对象创建时定义,由SQL Server强制实施,通常使用约束、缺省值和规则来实现。实现基本数据完整性的首选方法是使用声明型数据完整性。
声明型数据完整性作为数据库对象说明的一部分在语法中实现,在CREATE TABLE和ALTER TABLE定义中使用CONSTRAINT、DEFAULT等语句限制表中的值。使用这种方法实现数据完整性简单且不易出错,系统直接将实现数据完整性的要求定义在表和列上。
2. 过程型数据完整性
过程型数据完整性是指由某个过程引发而实施的数据完整性。一般先写出实施数据完整性的条件,再写出强制该条件所执行的用于保证数据完整性的脚本。通常由触发器和存储过程实现。过程型数据完整性也可以在客户机和服务器上使用其它编程语言和工具实现。;5.4.3 约束
1.约束的定义和类型
约束是SQL Server提供的自动保持数据库完整性的一种方法 。
列级约束:列级约束是行定义的一部分,只能够应用在一列上。
表级约束:表级约束的定义独立于列的定义,可以应用在一个表中的多列上。
约束有六种类型:非空约束、缺省约束、检查约束、主键约束、唯一约束、外键约束(参照约束)。
非空约束(NOT NULL):表中的某些列必须存在有效值,不允许有空值出现。这是最简单的数据完整性约束,可在建表时将该列声明为NOT NULL即可。
缺省约束(DEFALUT CONSTRAINTS):当向数据库中的表插入数据时,如果用户没有明确给出某列的值,SQL Server自动为该列输入指定值。
;检查约束(CHECK CONSTRAINTS):限制插入列中的值的范围。
主键约束(PRIMARY KEY CONSTRAINTS):要求主键的列上没有两行具有相同值,也没有空值。
唯一约束(UNIQUE CONSTRAINTS):要求表中所有行在指定的列上没有完全相同的列值。
外键约束(FROEIGN KEY CONSTRAINTS):要求正被插入或更新的列(外键)的新值,必须在被参照表(主表)的相应列(主键)中已经存在。;不同的约束强制不同类型的数据完整性。表中 给出了两者的对应关系。;2.使用T-SQL语言创建、管理约束
(1)使用CREATE TABLE语句创建约束
使用CREATE TABLE语句创建约束的一般语法如下:
CREATE TABLE table_name
(column_name data_type
[[CONSTRAINT constraint_name]
{PRIMARY KEY [CLUSTERED | NONCLUSTERED]
| UNIQUE [CLUSTERED | NONCLUSTERED]
| [FOREIGN KEY] REFERENCES ref_table [(ref_column) ]
| DEFAULT constant_expression
| CHECK(logical_expression)}
] [,...n]
);其中:
table_name:创建约束所在的表的名称。
column_name:列名。
data_type:数据类型。
constraint_name:约束名。
在创建、修改、实现约束时注意以下几点:
① 可以在已有的表上创建、修改、删除约束,而不必删除并重建表。
② 可以在应用程序中创建错误检查逻辑,测试是否违反约束。
③ 在给表添加约束时,SQL将验证表中已有数据是否满足正在添加的约束。;⑵ 缺省约束
缺省约束是指当向数据库中的表插入数据时,如果用户没有明确给出某列的值时,SQL Server自动为该列输入的值,缺省约束用于实现域的完整性。
创建DEFAULT约束时应考虑以下因素:
DEFAULT约束只能用于INSERT语句
不能用于具有IDENTI
您可能关注的文档
- 第14讲excel数据库管理与数据分析.ppt
- 第15章30年代戏剧1.ppt
- 第1章UG三维造型.ppt
- 第1章国际收支练习题.ppt
- 第1章教育与社会发展.ppt
- 第1章 基础知识-.ppt
- 第1章绪论与图表.ppt
- 第1章第3节企业的经济活动与经济业务.ppt
- 第1章管理心理学概述2013上.ppt
- 第1章翻译的定义和分类.ppt
- 2021-2022学年湖南省常德市安乡县四年级上学期期中语文真题及答案.pdf
- 2023-2024学年河南省南阳市社旗县四年级上学期期中数学真题及答案.pdf
- 2022-2023学年云南省曲靖市四年级下学期期末数学真题及答案.pdf
- 2021-2022学年河南省周口市鹿邑县二年级下册月考语文真题及答案.pdf
- 2018年河南焦作解放区教师招聘考试真题及答案.pdf
- 2019年江西公务员行测考试真题及答案-乡镇.pdf
- 2019中国石油报社应届高校毕业生招聘试题及答案解析.pdf
- 光大银行招聘应届毕业生能力素质测试笔试真题及答案.pdf
- 2024年广西百色教师招聘考试模拟题及答案.pdf
- 2021-2022学年浙江绍兴诸暨市五年级上册语文期末试卷及答案.pdf
文档评论(0)