- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
《第05章实施数据完整性
实施数据完整性
本章主题
什么是数据完整性
数据完整性的实施形式
活用约束
CHECK约束
PRIMARY KEY 约束
UNIQUE约束
关系链和FOREIGN KEY约束
活用默认值
活用规则
完整性的检查次序
让我们努力掌握这一章的精彩内容吧!!
临渊羡鱼,不如退而结网。实体完整性
实体完整性:要求表中每一条数据记录都是一个唯一的实体,也就是每一条数据记录必须拥有一个唯一标识。
说白了:要求所有数据记录至少必须有一个字段或几个字段的组合的内容绝对不能发生重复的情况。
域完整性
域完整性:要求存入字段中的数据值必须符合特定的条件,以及决定字段是否允许接受NULL。
引用完整性
引用完整性:指当添加、修改或删除数据记录时,表间的关联性不可破坏。
用户定义完整性
泛指其他所有不属于前3种完整性的业务规则
该种业务规则无法利用前3种完整性来完成。
表格 51 数据完整性类型
数据完整性的类型 实施此数据完整性的可用方法 实体完整性
(Entity Integrity) 索引
PRIMARY KEY约束
UNIQUE约束
IDENTITY属性 域完整性
(Domain Integrity) DEFAULT定义
FOREIGH KEY约束
CHECK约束
NOT NULL定义
规则 引用完整性
(Referential Integrity) FOREIGH KEY约束
CHECK约束
存储过程
触发器 用户定义完整性
(User-Defined Integrity) CREATE TABLE命令语句中所有字段与表级的约束
存储过程
触发器
数据完整性的实施形式
两种实施形式:
声明式数据完整性:是将数据所需符合的条件融入到对象定义中。
特点1:通过直接针对表和字段定义声明的约束,可使声明式数据完整性成为数据库定义的一部分。
特点2:可使用约束、默认值与规则实施声明式数据完整性。
程序化数据完整性:通过编写的程序代码来完成
建议较复杂的业务逻辑采用程序化数据完整性
程序化数据完整性可通过相关的程序语言及工具在客户端或服务器端实施
SQL Server可使用存储过程和触发器实施程序化数据完整性。
活用约束
约束(Constraints):最主要的功能是确保存入到字段中的数据符合我们的要求,并确实维护表间的关联性连接。
约束以字段为处理对象
如果约束的处理对象是某单一字段,称为“列约束”
如果约束的处理对象涉及多个字段,称为“表约束”
若要更改表现有的约束定义,只能使用“企业管理器”实现。
数据库中各个约束的名称绝对不能相同。
约束种类:CHECK、PRIMARY KEY、UNIQUE、FOREIGN KEY
CHECK约束
CHECK约束:只有符合特定条件和格式的数据才能存入字段中。
可以同时在一个字段应用多个CHECK约束
当执行INSERT或UPDATE命令时,CHECK约束便会进行检验。
自动编号字段、timestamp、uniqueidentifier数据类型字段不能应用 CHECK约束
选中或不选中复选框“创建中检查现存数据”
表示SQL Server在将表的结构保存之前,会先检查表中所有的数据记录是否符合您指定的CHECK约束
选中或不选中复选框“对INSERT和UPDATE强制约束”
表示当执行INSERT或UPDATE命令时,便会应用CHECK约束,以便检查添加或修改后字段中的数据是否符合指定的条件。
选中或不选中复选框“对复制强制约束”
当将表复制到其他的数据库,表的结构定义和数据记录会从原先所在的数据库复制到目标数据库,此时如果不禁用在此表中的CHECK约束,很可能导致数据无法写入目标数据库
新建表时创建CHECK约束
使用企业管理器
注意:在操作过程中,并不要指定是“列级约束”还是“表级约束”,是根据该约束逻辑表达式自动确定。
任务:新建MyTable表,将age字段设置在1-150之间;将gender字段取值设定为’男’或者’女’。
使用CREATE TABLE命令
/*未指定约束名称,将由SQL Server自动指派*/
CREATE TABLE DemoTable2
(
MemberNo smallint NOT NULL
CHECK (MemberNo BETWEEN 1 AND 10000),
name varchar(20) NOT NULL,
address varchar(60) NOT NULL
)
/*指定约束名称*/
CREATE TABLE DemoTable1
(
MemberNo smallint NOT NULL
CONSTRAINT MemberNoChk
CHECK (Membe
文档评论(0)