文档详情

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

发布:2015-11-08约7.72千字共34页下载文档
文本预览下载声明
模块6 规则、默认和完整性 约束 本模块的主要内容如下: • PRIMARY KEY 约束 • FOREIGN KEY (外键)约束 • UNIQUE 约束 • CHECK约束 • DEFAULT约束 • NOT NULL约束 本章的学习目标: • 理解数据完整性的概念和控制机制 • 掌握使用规则、默认值及约束来实现数据的完整性 任务6.1 工作场景导入 • 如何限制输入的年龄值在1~150之间?如何保证“性别”只能输入 “男”或“女” ?已知学生中女生较多,如何为“性别”列设置默认值 “女”从而减少输入数据量? • 强制数据完整性可保证数据库中数据的质量。例如,如果输入了雇 员ID值为123的雇员,则数据库不允许其他雇员拥有同值的ID。 如果您的employee_rating列的值范围是从1至5 ,则数据库将不 接受此范围以外的值。如果表有一个存储雇员部门编号的dept_id 列,则数据库应只允许接受有效的公司部门编号的值。 • 引导问题: • (1 )如何使用“规则”限制输入的年龄值在1~150之间? • (2 )如何为“性别”列设置默认值“女” ,以减少输入数据量? • (3 )如何实现强制数据完整性? 任务6.2 如何实现数据完整性 数据完整性的含义包括以下内容: • (1 )数值的完整性,指数据类型与取值的正确性。 • (2 )表内数据不相互矛盾。 • (3 )表间数据不相互矛盾,指数据的关联性不被破坏。 任务6.2 如何实现数据完整性 按照数据完整性的功能分为4类: • 实体完整性:要求表中每一条记录(每一行数据)是唯一的,即它必 须至少拥有一个惟一标识以区分不同的数据行。实现方法有:主键约 束PRIMARY KEY、惟一性约束UNIQUE、惟一索引UNIQUE INDEX、标识IDENTITY等 。 任务6.2 如何实现数据完整性 • 域完整性:限定表中输入数据的数据类型与取值范围。实现方法:默 认值约束DEFAULT或默认对象、核查约束CHECK、外键约束 FOREIGN KEY、规则RULE 、数据类型、非空性约束NOT NULL等。 任务6.2 如何实现数据完整性 • 引用完整性:指对数据库进行添加、删除、修改数据时,要维护表间 数据的一致性。实现方法:外键约束FOREIGN KEY、核查约束 CHECK、触发器TRIGGER、存储过程PROCEDURE。 任务6.2 如何实现数据完整性 • 用户定义的完整性:用于实现用户特殊要求的数据规则或格式。实现 方法:默认值DEFAULT、核查约束CHECK、规则RULE 等。 任务6.3 规则对象的基本操作 • 6.3.1 创建规则对象 • 创建规则对象的基本语法格式如下: • CREATE RULE [ schema_name . ] rule_name • AS condition_expression • [ ; ] • 【例6-3】创建一个名为age_rule规则对象,该规则要求数据在 1~100之间。 • CREATE RULE age_rule • As @age=1 and @age=100 • 【例6-4】创建一个名为sex_rule规则对象,该规则要求性别只取 “男”或“女”。 • CREATE RULE sex_rule • As @sex in (’男’,’女’) 6.3.2 绑定规则对象 • 将创建好的规则对象绑定到某个数据表的列上,规则对象才会起约 束作用。 • 绑定规则对象的语法为: • Exec Sp_bindrule ’规则对象名’,’表名.列名’ • 【例6-5】建立数据表“学生表”,包括“姓名”、“性别”、“年龄”字段, 要求年龄字段值在1~100。 • CREATE TABLE 学生 • ( 姓名 nvarchar(4), • 性别 nvarchar(1), • 年龄 tinyint) • Exec sp_bindrule age_rule,学生表.年龄 6.3.3 验证规则对象 • 【例6-6】向学生表中插入一条记录,该学生的年龄为321。 • INSERT INTO 学生表 values(‘张
显示全部
相似文档