《第9章-数据完整性ppt课件(全).ppt》由会员分享,可在线阅读,更多相关《第9章-数据完整性ppt课件(全).ppt(31页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第第 9 章章数据数据完整性完整性第9章 数据完整性ppt课件(全)本章的学习目标:n操纵数据时的问题和解决机制n约束的基本概念和类型n管理DEFAULT约束n管理CHECK约束n管理主键约束n管理UNIQUE约束n管理外键约束n禁止约束的场景第9章 数据完整性ppt课件(全)9.1 数据完整性概述数据完整性的含义包括以下内容:n(1)数值的完整性,指数据类型与取值的正确性。n(2)表内数据不相互矛盾。n(3)表间数据不相互矛盾,指数据的关联性不被破坏。第9章 数据完整性ppt课件(全)n实体完整性,要求表中每一条记录(每一行数据)是惟一的,即它必须至少拥有一个惟一标识以区分不同的数据行。实现
2、方法有:主键约束PRIMARY KEY、惟一性约束UNIQUE、惟一索引UNIQUE INDEX、标识IDENTITY等。第9章 数据完整性ppt课件(全)n值域完整性,限定表中输入数据的数据类型与取值范围。实现方法:默认值约束DEFAULT或默认对象、核查约束CHECK、外键约束FOREIGN KEY、规则RULE、数据类型、非空性约束NOT NULL等。第9章 数据完整性ppt课件(全)n引用完整性,指对数据库进行添加、删除、修改数据时,要维护表间数据的一致性。实现方法:外键约束FOREIGN KEY、核查约束CHECK、触发器TRIGGER、存储过程PROCEDURE。第9章 数据完整性
3、ppt课件(全)n用户定义的完整性,用于实现用户特殊要求的数据规则或格式。实现方法:默认值DEFAULT、核查约束CHECK、规则RULE 等。第9章 数据完整性ppt课件(全)9.2 使用约束实施数据的完整性n约束用于实现表内数据的完整性,属于对象级。SQL Server 支持的约束有如下几种:非空约束NOT NULL,主键约束PRIMARY KEY、惟一约束UNIQUE、核查约束CHECK、外键约束 FOREIGN KEY、默认值约束DEFAULT。第9章 数据完整性ppt课件(全)9.3 约束的概念和类型n在SQL Server中,对于基本表的约束分为列约束和表约束。列约束是对某一个特定
4、列的约束,包含在列定义中,直接跟在该列的其他定义之后,用空格分隔,不必指定列名;表约束与列定义相互独立,不包括在列定义中,通常用于对多个列一起进行约束,与列定义用“,”分隔,定义表约束时必须指出要约束的列的名称。n完整性约束的基本语法格式如下:nCONSTRAINT constraint_name(约束名)第9章 数据完整性ppt课件(全)9.4 管理约束n 9.4 管理约束n 本节详细研究各种DEFAULE、CHECK、主键、UNIQUE、外键等约束的特点、创建方式、修改等内容。第9章 数据完整性ppt课件(全)约束:约束:完整性类型 约束类型描述域DEFAULT指定列的默认值指定列的默认值
5、CHECK指定列的允许值指定列的允许值FOREIGN KEY指定必须存在值的列指定必须存在值的列NULL指定是否允许为指定是否允许为NULL实体PRIMARY KEY唯一标识每一行唯一标识每一行UNIQUE防止非主键重复防止非主键重复引用FOREIGN KEY定义值与同一个表或另一个表的主键值匹定义值与同一个表或另一个表的主键值匹配的一列或多列组合配的一列或多列组合 CHECK指定根据同一个表中其他列的值可在列中指定根据同一个表中其他列的值可在列中接受的数据值接受的数据值第9章 数据完整性ppt课件(全)PRIMARY KEY 约束:一个表通常可以通过一个列或多个列组合的数据来唯一标识表中的每
6、一行,这个列或列的组合就被称为表上的主键。创建表中的主键是为了保证数据的实体完整性。PRIMARY KEY(主键)约束用于定义基本表的主键,它是惟一确定表中每一条记录的标识符,其值不能为NULL,也不能重复,以此来保证实体的完整性。第9章 数据完整性ppt课件(全)使用Transact-SQL语句操作法设置主键约束,其语法形式如下:CONSTRAINT constraint_name PRIMARY KEY (column_name)第9章 数据完整性ppt课件(全)UNIQUE约束 通过SSMS可以完成创建和修改唯一性约束的操作 使用Transact-SQL语句完成惟一性约束的操作,其语法形
7、式如下:CONSTRAINT constraint_name UNIQUE(column_name)第9章 数据完整性ppt课件(全)CHECK 约束 使用SSMS图形化界面创建检查约束 用Transact-SQL语句创建检查约束。其语法形式如下:CONSTRAINT constraint_name CHECK (logical_expression)第9章 数据完整性ppt课件(全)DEFAULT 约束 使用SSMS图形化界面创建默认约束 用Transact-SQL语句创建默认约束。其语法形式如下:CONSTRAINT constraint_name DEFAULT constraint_e
8、xpression FOR column_name第9章 数据完整性ppt课件(全)NULL 约束 使用SSMS图形化界面设置空值约束。用Transact-SQL语句创建空值约束。其语法形式如下:直接在相应的语句后书写 NULL|NOT NULL 第9章 数据完整性ppt课件(全)FOREIGN KEY 约束 在SSMS图形化平台上添加外键约束。第9章 数据完整性ppt课件(全)使用Transact-SQL语句设置外部键约束,其语法形式如下:CONSTRAINT constraint_name FOREIGN KEY(column_name,n)REFERENCES ref_table (re
9、f_column,n)第9章 数据完整性ppt课件(全)9.5 禁止约束n约束是作用于表的数据库对象,离开了表,约束将不再存在。除了约束外,SQL Server还提供了两个独立于表的数据库对象用以维护数据库的完整性,即默认和规则。规则的作用类似于核查约束,若将一个规则绑定到指定列上,则可以检查该列的数据是否符合规则的要求。第9章 数据完整性ppt课件(全)9.5.1 创建规则n创建规则的语法如下。n命令格式:nCREATE RULE rule_name AS rule_expressionn命令说明:n(1)rule_name为要建立的规则的名称。n(2)rule_expression为规则表
10、达式,它与WHERE子句中的条件表达式类似,可以使用比较表达式、逻辑表达式、LIKE子句等,所不同的是需要将WHERE子句中的列名改为一个以开头并符合SQL Server命名规则的参数。第9章 数据完整性ppt课件(全)9.5.2 绑定规则 规则创建后,它仅仅是一个数据库对象,与其他数据库对象并没有联系。要将规则应用于一个表(或用户定义的数据类型)中,必须将其与表中的指定列(或用户定义的数据类型)相结合,称之为将规则绑定(bind)到列(或用户定义的数据类型),或称绑定规则。绑定规则需要使用系统存储过程sp_bindrule,语法如下。命令格式:sp_bindrule rule_name,ta
11、ble_name.column_name或 sp_bindrule rule_name,user_defined_datatype,futureonly_ flag命令说明:第9章 数据完整性ppt课件(全)9.5.3 解除绑定n当表中不再需要规则时,可以将规则与列分离,称为解除绑定。解除绑定需要使用系统存储过程sp_unbindrule,语法如下。n命令格式:nsp_unbindrule table_name.column_namen或 nsp_unbindrule user_defined_datatype ,futureonly_ flag 第9章 数据完整性ppt课件(全)9.5.4
12、删除规则n删除规则的前提是解除数据库中所有表的绑定。删除规则语法如下。n命令格式:nDROP RULE rule_name第9章 数据完整性ppt课件(全)9.6 默 认n9.6.1 创建默认n创建默认的语法如下。n命令格式:nCREATE DEFAULT default_name AS default_expressionn命令说明:n(1)default_name是符合SQL Server标识符规则的默认值名称。n(2)default_expression是常量,用以指出默认值的具体数值或字符串。第9章 数据完整性ppt课件(全)9.6.2 绑定默认n绑定默认的语法如下。n命令格式:nsp
13、_bindefault default_name,table_name.column_name n或 nsp_bindefault default_name,user_defined_datatype ,futureonly_ flag n命令说明:n(1)default_name 为默认值数据库对象的名称。n(2)其他语法项目的用法与规则类似。第9章 数据完整性ppt课件(全)9.6.3 解除绑定n解除默认绑定的语法如下。n命令格式:nsp_unbindefault table_name.column_namen或nsp_unbindefault user_defined_datatype
14、,futureonly_ flag 第9章 数据完整性ppt课件(全)9.6.4 删除默认n删除默认之前要先解除默认绑定。删除默认的语法如下。n命令格式:nDROP DEFAULT default_name第9章 数据完整性ppt课件(全)9.6.5 使用SSMS图形化界面管理默认值对象n与管理规则类似,在企业管理器中展开指定数据库节点,单击“默认”,在窗口右边可以看到当前数据库中的所有默认值对象。右击“默认”,选择“新建默认”,在弹出的窗口输入默认名称及其取值。或右击某个现有的默认值对象,选择“属性”,可以查看、修改或绑定该默认值对象。注意在修改之前需要解除绑定。第9章 数据完整性ppt课件
15、(全)9.7 使用自动编号IDENTITYnSQL Server为自动进行顺序编号而引入了自动编号的IDENTITY属性。当需要对某一列输入的数据进行有规律的顺序编号且保证每个编号惟一时,最好是采用IDENTITY,这样既方便准确,速度又快。具有IDENTITY属性的列称为标识列,其取值称为标识值,第9章 数据完整性ppt课件(全)n设置IDENTITY属性的语法如下。n建立表时定义标识列。n命令格式:nCREATE TABLE table_namen(column_name data_type n IDENTITY (seed,increment)NOT NULLn ,.nn)第9章 数据完整性ppt课件(全)