SQL Server数据库应用技术实例教程教学课件李东芸任务四

上传人:w****i 文档编号:94642065 上传时间:2019-08-10 格式:PPT 页数:60 大小:1.39MB
返回 下载 相关 举报
SQL Server数据库应用技术实例教程教学课件李东芸任务四_第1页
第1页 / 共60页
SQL Server数据库应用技术实例教程教学课件李东芸任务四_第2页
第2页 / 共60页
SQL Server数据库应用技术实例教程教学课件李东芸任务四_第3页
第3页 / 共60页
SQL Server数据库应用技术实例教程教学课件李东芸任务四_第4页
第4页 / 共60页
SQL Server数据库应用技术实例教程教学课件李东芸任务四_第5页
第5页 / 共60页
点击查看更多>>
资源描述

《SQL Server数据库应用技术实例教程教学课件李东芸任务四》由会员分享,可在线阅读,更多相关《SQL Server数据库应用技术实例教程教学课件李东芸任务四(60页珍藏版)》请在金锄头文库上搜索。

1、任务四 保证数据的准确性、一致性和完备性 在SQL Server 2005中实施数据完整性,任务:用约束、规则、默认值、触发器等方法强制实施数据完整性,保证输入到数据库中的数据的准确性、一致性和完备性。,4.1 了解数据完整性 4.2 应用约束 4.3 创建和管理关系图 4.4 应用默认值 4.5 应用规则 4.6 应用触发器 4.7 知识进阶 项目实训,了解数据完整性的概念 SQL Server 2005中的数据完整性机制 创建、应用约束实施数据完整性,管理约束 使用关系图工具创建数据库关系图实施数据完整性 创建、应用默认值实施数据完整性,管理默认值 创建、应用规则实施数据完整性,管理规则

2、创建、应用触发器实施数据完整性,管理触发器,学习目标,在SQL Server 2005中实施数据完整性表,4.1 了解数据完整性 任务:建立数据完整性的概念,了解SQL Server 2005中的数据完整性机制。,在SQL Server 2005中实施数据完整性表,4.1.1 什么是数据完整性 4.1.2 “高职院校教学管理系统”的数据完整性 需求分析,4.1.1 什么是数据完整性,1什么是数据完整性 数据完整性指存储在数据库中的数据在逻辑上是一致的、准确的、完备的,这是现代数据库的一个典型特征。 2数据完整性的分类 域完整性。即列完整性,产生在表中的一列或多列上,指定某个列的输入是否合法,以

3、及确定该列是否允许空值。 实体完整性。即行完整性,指定表中所有行的唯一性。它要求表中所有的行有一个唯一的标识符,即为主键。 参照完整性。即引用完整性,产生在表和表之间,要求在主键(被参照表)和外键之间的参照关系中得到维护,即参照表中的外键值必须始终参照被参照表中的主键值。 用户自定义完整性。用户自定义的一组规则,不属于以上三种完整性的任一种。,在SQL Server 2005中实施数据完整性表,4.1.2 “高职院校教学管理系统”的数据完整性 需求分析,1“高职院校教学管理系统”中的域完整性 (1)表student_info中的列zipcode和teacher_info中的列tzipcode拥

4、有自定义数据类型code。 (2)表student_grade中的列grade和credit使用检查约束指定取值范围分别为0=grade=100和0=credit=6。 (3)表student_info和表teacher_info中的列gender指定为bit型,取值只能是1(男)或0(女)。 (4)多个列拥有DEFAULT约束,如列profession的默认值为“副教授”,gender的默认值为1。 2“高职院校教学管理系统”中的实体完整性 (1)共包含九个表,每个表具有唯一一个主键 (2)表teacher_info的列identity_card指定UNIQUE约束,避免身份证号码重复。,在

5、SQL Server 2005中实施数据完整性表,3“高职院校教学管理系统”中的参照完整性,“高职院校教学管理系统”中的参照完整性,4.1.2 “高职院校教学管理系统”的数据完整性 需求分析,在SQL Server 2005中实施数据完整性表,4.2 应用约束 任务:了解SQL Server 2005中的约束类型及作用。创建、应用NOT NULL、PRIMARY KEY、UNIQUE、CHECK、DEFAULT、FOREIGN KEY约束强制数据完整性,对约束进行简单管理。,在SQL Server 2005中实施数据完整性表,4.2.1 约束的类型 4.2.2 使用SSMS创建约束 4.2.3

6、 使用T-SQL创建约束,约束(CONSTRAINT)是强制数据完整性非常有效的方法,属于声明型数据完整性。 对数据库来说,约束分为列约束和表约束。 列约束作为列定义的一部分只作用于该列。 表约束作为表定义的一部分,作用于表的多列。,4.2.1 约束的类型,在SQL Server 2005中实施数据完整性表,SQL Server 2005包含六种基本约束: (1)PRIMARY KEY 约束:实施实体完整性。 (2)UNIQUE 约束:实施实体完整性。 (3)DEFAULT约束:实施域完整性。 (4)CHECK约束:实施域完整性。 (5)NOT NULL约束:实施域完整性。 (6)FOREIG

7、N KEY约束:实施参照完整性。,4.2.1 约束的类型,在SQL Server 2005中实施数据完整性表,如下代码中既包含列约束,又有表约束。 CREATE TABLE course_info4 ( course_id char (10) NOT NULL , -列约束,列定义的一部分 course_name nvarchar(40) NOT NULL, -列约束, book_id char(10) NOT NULL, -列约束,列定义的一部分 week_period tinyint NULL DEFAULT (4), -列约束,列定义的一部分 total_period tinyint N

8、ULL DEFAULT (60), -列约束,列定义的一部分 credit tinyin NOT NULL CHECK (0=credit AND credit=6) -列约束,列定义的一部分 CONSTRAINT pk_course_info4 PRIMARY KEY(course_id) , -表约束,表定义的一部分 CONSTRAINT fk_course_info_book_info FOREIGN KEY (book_id) REFERENCES book_info(book_id) -表约束,4.2.1 约束的类型,在SQL Server 2005中实施数据完整性表,启动SSMS,

9、打开“对象资源管理器”,依次展开“数据库”JXGL“表”节点。 1创建PRIMARY KEY约束 2创建NOT NULL约束 3创建DEFAULT约束 4创建UNIQUE约束 5创建CHECK约束 6创建FOREIGN KEY约束,4.2.2 使用SSMS创建约束,提示: 若主键是多个列的组合时,可按住键盘上的Shift键或CTRL键连续选择多个键。 一个表中可以包含多个声明UNIQUE约束的列。,在SQL Server 2005中实施数据完整性表,1在CREATE TABLE语句中创建约束 使用CREATE TABLE语句可以在创建表的过程中创建约束,约束是表定义的一部分。,4.2.3 使用

10、T-SQL创建约束,提示:若想CREATE TABLE语句成功执行,必须先删除掉数据库中原来重名的表。列约束放在列定义语句中,表约束放在所有列定义语句之后。最后一个列定义语句和约束定义语句之后没有逗号“,”分隔,其他定义语句之后都有逗号。,在SQL Server 2005中实施数据完整性表,【例4-1】使用CREATE TABLE语句定义表teacher_info及其约束。 CREATE TABLE teacher_info ( teac_id char(8) NOT NULL PRIMARY KEY (teac_id), -NOT NULL 约束 teac_name nvarchar(20)

11、 NOT NULL, dep_id char(2) NOT NULL, tgender bit NOT NULL, profession nvarchar(20) NOT NULL CONSTRAINT DF_teacher_info_profession DEFAULT (N副教授), -DEFAULT约束 telephone varchar(14) NULL , thome_addr nvarchar(50) NULL, tzipcode dbo.code NULL, identity_card char(18) NULL UNIQUE CHECK (len(identity_card)=

12、15 OR (len(identity_card)=18) - CHECK 约束 CONSTRAINT PK_teacher_info PRIMARY KEY (teac_id), -PRIMARY KEY 约束 CONSTRAINT FK_teacher_info_department_info FOREIGN KEY (dep_id) REFERENCES department_info(dep_id) ) -FOREIGN KEY 约束,4.2.3 使用T-SQL创建约束,在SQL Server 2005中实施数据完整性表,2在ALTER TABLE语句中创建约束 如果表已经创建完成,但

13、没有声明任何约束,可以使用ALTER TABLE语句添加约束声明。 【例4-2】使用ALTER TABLE语句为表teacher_info添加约束(假设表teacher_info没有声明约束)。代码如下: (1)添加NOT NULL约束(其他列与此类似)。 ALTER TABLE teacher_info ALTER COLUMN teac_id char(8) NOT NULL (2)添加DEFAULT约束。 ALTER TABLE teacher_info ADD CONSTRAINT DF_teacher_info_profession DEFAULT (N副教授) FOR profes

14、sion (3)添加UNIQUE约束。 ALTER TABLE teacher_info ADD CONSTRAINT unique_ identity_card UNIQUE(identity_card),4.2.3 使用T-SQL创建约束,在SQL Server 2005中实施数据完整性表,(4)添加CHECK约束。 ALTER TABLE teacher_info ADD CONSTRAINT check_identity_card CHECK (len(identity_card)=15 OR (len(identity_card)=18) (5)添加PRIMARY KEY约束。 AL

15、TER TABLE teacher_info ADD CONSTRAINT primary_teac_id PRIMARY KEY (teac_id) (6)添加FOREIGN KEY约束。 ALTER TABLE teacher_info ADD CONSTRAINT FK_teacher_info_department_info FOREIGN KEY (dep_id) REFERENCES department_info(dep_id),4.2.3 使用T-SQL创建约束,提示:将多个列组合添加为表的主键,代码如下: ALTER TABLE teacher_info ADD CONSTR

16、AINT PK_ab PRIMARY KEY (column_a,column_b),在SQL Server 2005中实施数据完整性表,在声明约束时应注意以下问题: (1)执行系统存储过程sp_help可以查看表的所有约束信息。执行ALTER TABLE DROP 语句可以删除相应的约束。想删除表中的某一列,必须先删除该列中的约束。 (2)一个表中可以声明多个CHECK约束,一列只能声明一个CHECK约束。不能在具有IDENTITY属性或timestamp型、uniqueidentifine型数据的列上声明CHECK约束。 (3)一个表中只能创建一个PRIMARY KEY约束,且不允许为NULL。系统自动在主键列上创建一个聚集索引(将在任务五中介绍)。一个表中可以有多个UNIQUE约束,且允许为NULL,用于强制在指定列上创建一个UNIQUE索引。,4.2.3 使用T-SQL创建约

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

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

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