SQL Server 2012数据库应用与开发教程(第三版) 教学课件 ppt 作者 卫 琳 主编 模块6 规则、默认和完整性约束

上传人:E**** 文档编号:89361803 上传时间:2019-05-24 格式:PPT 页数:34 大小:1,016KB
返回 下载 相关 举报
SQL Server 2012数据库应用与开发教程(第三版) 教学课件 ppt 作者 卫 琳 主编 模块6 规则、默认和完整性约束_第1页
第1页 / 共34页
SQL Server 2012数据库应用与开发教程(第三版) 教学课件 ppt 作者 卫 琳 主编 模块6 规则、默认和完整性约束_第2页
第2页 / 共34页
SQL Server 2012数据库应用与开发教程(第三版) 教学课件 ppt 作者 卫 琳 主编 模块6 规则、默认和完整性约束_第3页
第3页 / 共34页
SQL Server 2012数据库应用与开发教程(第三版) 教学课件 ppt 作者 卫 琳 主编 模块6 规则、默认和完整性约束_第4页
第4页 / 共34页
SQL Server 2012数据库应用与开发教程(第三版) 教学课件 ppt 作者 卫 琳 主编 模块6 规则、默认和完整性约束_第5页
第5页 / 共34页
点击查看更多>>
资源描述

《SQL Server 2012数据库应用与开发教程(第三版) 教学课件 ppt 作者 卫 琳 主编 模块6 规则、默认和完整性约束》由会员分享,可在线阅读,更多相关《SQL Server 2012数据库应用与开发教程(第三版) 教学课件 ppt 作者 卫 琳 主编 模块6 规则、默认和完整性约束(34页珍藏版)》请在金锄头文库上搜索。

1、模块6 规则、默认和完整性约束,本模块的主要内容如下: PRIMARY KEY 约束 FOREIGN KEY(外键)约束 UNIQUE 约束 CHECK约束 DEFAULT约束 NOT NULL约束 本章的学习目标: 理解数据完整性的概念和控制机制 掌握使用规则、默认值及约束来实现数据的完整性,任务6.1 工作场景导入,如何限制输入的年龄值在1150之间?如何保证“性别”只能输入“男”或“女”?已知学生中女生较多,如何为“性别”列设置默认值“女”从而减少输入数据量? 强制数据完整性可保证数据库中数据的质量。例如,如果输入了雇员ID值为123的雇员,则数据库不允许其他雇员拥有同值的ID。如果您的

2、employee_rating列的值范围是从1至5,则数据库将不接受此范围以外的值。如果表有一个存储雇员部门编号的dept_id列,则数据库应只允许接受有效的公司部门编号的值。 引导问题: (1)如何使用“规则”限制输入的年龄值在1150之间? (2)如何为“性别”列设置默认值“女”,以减少输入数据量? (3)如何实现强制数据完整性?,任务6.2 如何实现数据完整性,数据完整性的含义包括以下内容: (1)数值的完整性,指数据类型与取值的正确性。 (2)表内数据不相互矛盾。 (3)表间数据不相互矛盾,指数据的关联性不被破坏。,实体完整性:要求表中每一条记录(每一行数据)是唯一的,即它必须至少拥有

3、一个惟一标识以区分不同的数据行。实现方法有:主键约束PRIMARY KEY、惟一性约束UNIQUE、惟一索引UNIQUE INDEX、标识IDENTITY等 。,按照数据完整性的功能分为4类:,任务6.2 如何实现数据完整性,域完整性:限定表中输入数据的数据类型与取值范围。实现方法:默认值约束DEFAULT或默认对象、核查约束CHECK、外键约束FOREIGN KEY、规则RULE 、数据类型、非空性约束NOT NULL等。,任务6.2 如何实现数据完整性,引用完整性:指对数据库进行添加、删除、修改数据时,要维护表间数据的一致性。实现方法:外键约束FOREIGN KEY、核查约束CHECK、触

4、发器TRIGGER、存储过程PROCEDURE。,任务6.2 如何实现数据完整性,用户定义的完整性:用于实现用户特殊要求的数据规则或格式。实现方法:默认值DEFAULT、核查约束CHECK、规则RULE 等。,任务6.2 如何实现数据完整性,任务6.3 规则对象的基本操作,6.3.1 创建规则对象 创建规则对象的基本语法格式如下: CREATE RULE schema_name . rule_name AS condition_expression ; 【例6-3】 创建一个名为age_rule规则对象,该规则要求数据在1100之间。 CREATE RULE age_rule As age=1

5、 and age=100 【例6-4】创建一个名为sex_rule规则对象,该规则要求性别只取“男”或“女”。 CREATE RULE sex_rule As sex in (男,女),6.3.2 绑定规则对象,将创建好的规则对象绑定到某个数据表的列上,规则对象才会起约束作用。 绑定规则对象的语法为: Exec Sp_bindrule 规则对象名,表名.列名 【例6-5】建立数据表“学生表”,包括“姓名”、“性别”、“年龄”字段,要求年龄字段值在1100。 CREATE TABLE 学生 ( 姓名 nvarchar(4), 性别 nvarchar(1), 年龄 tinyint) Exec sp

6、_bindrule age_rule,学生表.年龄,6.3.3 验证规则对象,【例6-6】向学生表中插入一条记录,该学生的年龄为321。 INSERT INTO 学生表 values(张三,321) 输入完成,单击“执行按钮”,插入结果如图所示:,6.3.4 解除规则对象绑定,如果表中列不需要规则对象时,可将规则对象解除绑定。执行删除规则对象前,规则对象仍然存储在数据库中,还可以再绑定到其他列上。 命令格式: sp_unbindrule 表名.列名 【例6-7】解除学生表中规则对象绑定。 Exec sp_unbindrule 学生表.年龄,6.3.5 删除规则对象,如果需要删除规则对象,必须先

7、解除对该规则对象的所有绑定,并从数据库中清除。删除规则对象语法如下。 命令格式: DROP RULE 规则对象名组 【例6-8】删除规则对象age_rule。 DROP RULE age_rule,sex_rule 说明:可同时删除多个规则对象,规则对象名之间用“,”来分割。,任务6.4 默认值对象的基本操作,6.4.1 创建默认值对象 语法格式如下: CREATE TABLE 默认值对象名 As 表达式 【例6-9】创建一个名为sex_default 默认值对象,默认值为“女”。 CREATE DEFAULT sex_default as 女,6.4.2 默认值对象绑定 默认值对象必须绑定到

8、数据列或用户定义的数据类型中,才能得到应用。 绑定默认值对象使用系统存储过程sp_bindefault,语法格式如下: Exec Sp_bindefault 默认值对象名,表名.列名 【例6-10】将默认值对象绑定到学生数据表的性别列上。 Exec Sp_bindefault sex_default,学生.性别,6.4.3 解除默认值对象绑定 解除默认值对象就是将默认值对象从表的列上分离开来,在执行删除默认值对象之前,该默认值对象仍存储在数据库中,还可再绑定到其他数据上。 解除默认值对象使用系统存储过程sp_unbindefault,其语法为: Sp_unbindefault 表名.列名 【例

9、6-11】将sex_default默认值对象从学生数据表的“性别”列中分离。 Exec Sp_unbindefault 学生.性别,6.4.4 删除默认值对象 删除默认值对象就是从数据库中清除默认值对象的定义,该默认值对象不能再绑定到任何数据表的列上。默认值对象删除前,必须解除对其所有的绑定。 删除默认值对象的语法为: DROP default 默认值对象名组 【例6-12】删除默认值对象sex_default。 DROP default sex_default,任务6.5 完整性约束,SQL Server2012中提供了下列完整性约束机制来强制数据表中列数据的完整性: PRIMARY KEY

10、 约束 FOREIGN KEY 约束 UNIQUE 约束 CHECK 约束 DEFAULT 定义 允许空值,6.5.1 PRIMARY KEY 约束 一个表通常可以通过一个列或多个列组合的数据来唯一标识表中的每一行,这个列或列的组合就被称为表上的主键。创建表中的主键是为了保证数据的实体完整性。 PRIMARY KEY (主键)约束用于定义基本表的主键,它是惟一确定表中每一条记录的标识符,其值不能为NULL,也不能重复,以此来保证实体的完整性 创建表时定义主键约束 列级 表级 更改表的主键约束,1)使用SSMS图形化界面创建主键约束,create table mysc (sno char(4)

11、not null, cno char(10) not null, grade tinyint) alter table mysc add constraint mysc_pk primary key (sno,cno) alter table mysc drop constraint mysc_pk,2.)使用Transact-SQL语句操作法设置主键约束 其语法形式如下: CONSTRAINT constraint_name PRIMARY KEY ( column_name ),6.5.2 UNIQUE约束 使用T-SQL语句创建 create table 雇员表 (雇员号 char(10

12、) primary key, 雇员名 nvarchar(8) unique ) alter table student add constraint uk_sname_s unique (sname) select * from student with (index=uk_sname_s) alter table student drop constraint uk_sname_s,UNIQUE约束,通过SSMS可以完成创建和修改唯一性约束的操作,使用Transact-SQL语句完成惟一性约束的操作,其语法形式如下: CONSTRAINT constraint_name UNIQUE ( c

13、olumn_name ),6.5.2 UNIQUE约束 使用SSMS图形界面创建唯一性约束,primary key 约束与unique 约束的主要区别: 一个数据表只能创建一个primary key 约束,但一个表中可根据需要对不同的列创建若干个unique 约束。 primary key 字段的值不允许为NULL,而unique字段的值可取NULL. 一般创建primary key约束时,系统会自动产生索引,索引的默认类型为聚簇索引。创建unique 约束时,系统会自动产生一个unique索引,索引的默认类型为非聚簇索引。 相同点: 二者均不允许表中对应字段存在重复值。 二者均自动创建一个唯

14、一索引,6.5.3 check约束,1)使用SSMS图形化界面创建检查约束,alter table xs add ssex char(2) constraint sex_ck check(ssex in (男,女) alter table xs_kc drop constraint sex_ck,6.5.3 check约束,alter table xs_kc add constraint grade_ck check(grade=0 and grade=750) alter table xs_kc drop constraint grade_ck,2)使用T-SQL命令创建检查约束,6.5.4

15、 DEFAULT 约束,使用SSMS图形化界面创建默认约束,用Transact-SQL语句创建默认约束。其语法形式如下: CONSTRAINT constraint_name DEFAULT constraint_expression FOR column_name,create table mystudent2 (sno char(10), sname nvarchar(4), ssex char(2), sdept nvarchar(10) constraint sdept_defa default (计算机科学), scomegrade smallint constraint cg_ck

16、 check (scomegrade=0 and scomegrade=750) ),例如,create table stu (sno char(10), sname varchar(8), ssex char(2) constraint sex_ck check (ssex in (男,女), sdept varchar(20) constraint sdept_defa1 default (计算机科学) ),6.5.5 NULL 约束,1)使用SSMS图形化界面设置空值约束。,用Transact-SQL语句创建空值约束。其语法形式如下: 直接在相应的语句后书写 NULL | NOT NULL ,1.)在SSMS图形化平台上添加外键约束。,6.5.6 foreign key 约束,使用Transact-SQL语句设置外部键约束 ,其语法形式如下: CONSTRAINT constraint_name FOREIGN KEY(column_nam

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号