




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、电脑基础实例上机系列丛书SQL Server数据库应用教程清华大学出版社第5章 数据完整性学习目标 本章要点上机练习 习 题电脑基础实例上机系列丛书SQL Server数据库应用教程清华大学出版社学习目标 数据完整性是指存储在数据库中的数据的一致性和准确性。数据完整性技术是衡量数据库质量好坏的重要标准。在Microsoft SQL Server系统中,提供了一系列实现数据完整性的方法,这些方法主要包括主键约束、外键约束、非空约束、惟一约束、默认值约束、检查约束以及规则和默认对象。电脑基础实例上机系列丛书SQL Server数据库应用教程清华大学出版社学习目标本章将详细讲述Microsoft S
2、QL Server 2000系统的数据完整性方法,通过本章学习将了解数据完整性的概念和类型,并通过定义表的各种约束实现数据完整性以及管理规则对象和默认对象。电脑基础实例上机系列丛书SQL Server数据库应用教程清华大学出版社本章要点 数据完整性基本概念使用约束默认对象规则标识列IDENTITY电脑基础实例上机系列丛书SQL Server数据库应用教程清华大学出版社数据完整性基本概念 在Microsoft SQL Server 2000系统中,数据完整性分为以下几种类型。 数据完整性的类型 电脑基础实例上机系列丛书SQL Server数据库应用教程清华大学出版社数据完整性基本概念域完整性 实
3、体完整性 参照完整性 电脑基础实例上机系列丛书SQL Server数据库应用教程清华大学出版社域完整性域完整性又称为列完整性,用以指定列的数据输入是否具有正确的数据类型、格式以及有效的数据范围。 电脑基础实例上机系列丛书SQL Server数据库应用教程清华大学出版社实体完整性实体完整性又称为行完整性。这里的实体是指表中的记录,一个实体就是表的一条记录。实体完整性要求在表中不能存在完全相同的记录,而且每条记录都要具有一个非空且不重复的主键值。电脑基础实例上机系列丛书SQL Server数据库应用教程清华大学出版社参照完整性参照完整性又称为引用完整性,参照完整性保证主表(被参照表)中的数据与从表
4、(参照表)中数据的一致性。在SQL Server 2000中,参照完整性的是通过定义外键与主键之间或外键与惟一键之间的对应关系实现的。电脑基础实例上机系列丛书SQL Server数据库应用教程清华大学出版社参照完整性示意图 参照完整性示意图 电脑基础实例上机系列丛书SQL Server数据库应用教程清华大学出版社参照完整性如果定义了两个表之间的参照完整性,则要求如下。从表不能引用不存在的键值。如果主表中的键值更改了,那么在整个数据库中,对从表中该键值的所有引用要进行一致的更改。如果要删除主表中的某一记录,应先删除从表中与该记录匹配的相关记录。 电脑基础实例上机系列丛书SQL Server数据库
5、应用教程清华大学出版社使 用 约 束 约束是保证数据完整性的有效方法。每一种数据完整性类型,例如域完整性、实体完整性和参照完整性,都由不同的约束类型来保障。约束可以作为数据库定义部分在CREATE TABLE语句中声明,也可以通过ALTER TABLE语句在已有的表中添加或者删除。当表被删除时,表中所有的约束定义也随之被删除。电脑基础实例上机系列丛书SQL Server数据库应用教程清华大学出版社使 用 约 束 约束包括以下几种类型。PRIMARY KEY约束FOREIGN KEY约束NOT NULL约束UNIQUE约束DEFAULT约束CHECK约束电脑基础实例上机系列丛书SQL Serve
6、r数据库应用教程清华大学出版社使 用 约 束 主键约束 惟一约束 检查约束 默认值约束 外键约束 电脑基础实例上机系列丛书SQL Server数据库应用教程清华大学出版社主键约束表中常有一列或列的组合,其值能惟一标识表中的每一行,这样的一列或列的组合称为表的主键(PRIMARY KEY),通过主键可以强制表的实体完整性。定义了主键约束的列具有以下特点。电脑基础实例上机系列丛书SQL Server数据库应用教程清华大学出版社主键约束每个表只能定义一个主键。主键值不可为空(NULL)。主键值不可重复。若主键是由多列组成时,某一列上的值可以重复,但多列的组合值必须是惟一的。电脑基础实例上机系列丛书S
7、QL Server数据库应用教程清华大学出版社主键约束使用企业管理器定义和删除主键约束 使用T-SQL语句定义主键约束 电脑基础实例上机系列丛书SQL Server数据库应用教程清华大学出版社使用企业管理器定义和删除主键约束 在企业管理器中,我们可以定义和删除约束。1)使用企业管理器定义主键约束下面讲解如何使用企业管理器创建表。【例5-1】 对ReadCategory表按“种类编号”列定义主键约束。电脑基础实例上机系列丛书SQL Server数据库应用教程清华大学出版社使用企业管理器定义和删除主键约束2)使用企业管理器删除主键约束打开表设计器,选择已设为主键的行,再次单击工具栏中按钮,即删除原
8、来定义的主键。电脑基础实例上机系列丛书SQL Server数据库应用教程清华大学出版社在表设计器窗口中设置主键 在表设计器窗口中设置主键 电脑基础实例上机系列丛书SQL Server数据库应用教程清华大学出版社使用T-SQL语句定义主键约束 主键约束定义格式:CONSTRAINT constraint_name PRIMARY KEY CLUSTERED|NONCLUSTERED(column,n)电脑基础实例上机系列丛书SQL Server数据库应用教程清华大学出版社使用T-SQL语句定义主键约束其中各参数的含义如下。constraint_name:主键约束名称。CLUSTERED:表示在该
9、列上建立聚族索引。NONCLUSTERED:表示在该列上建立非聚族索引。电脑基础实例上机系列丛书SQL Server数据库应用教程清华大学出版社使用T-SQL语句定义主键约束1)在创建表的同时定义主键约束下面讲解创建表并定义约束的方法。【例5-2】 创建名为ReadCategory表的同时,定义列“种类编号”为主键约束(光盘:源文件第5章例5-2)。电脑基础实例上机系列丛书SQL Server数据库应用教程清华大学出版社使用T-SQL语句定义主键约束2)在修改表时定义主键约束下面讲解在修改表时定义约束。【例5-3】 若已创建了表Readers,添加一个按“读者编号”建立的主键约束(光盘:源文件
10、第5章例5-3)。电脑基础实例上机系列丛书SQL Server数据库应用教程清华大学出版社使用T-SQL语句定义主键约束3)使用T-SQL语句删除主键约束语法格式:ALTER TABLE table_nameDROP CONSTRAINT constraint_name,n电脑基础实例上机系列丛书SQL Server数据库应用教程清华大学出版社使用T-SQL语句定义主键约束【例5-4】 删除【例5-3】定义的主键约束(光盘:源文件第5章例5-4)。可以使用系统存储过程sp_helpconstraint来查看指定表上的约束:EXEC sp_helpconstraint Readers电脑基础实例
11、上机系列丛书SQL Server数据库应用教程清华大学出版社惟一约束 如果要确保一个表中的非主键列不输入重复值,应在该列上定义惟一约束(UNIQUE约束)。使用惟一约束和主键约束均不允许表中对应字段存在重复值,二者都可以实现实体完整性,但它们之间存在以下区别。电脑基础实例上机系列丛书SQL Server数据库应用教程清华大学出版社惟一约束 一个表只能定义一个主键约束,但可根据需要对不同的列定义若干个惟一约束。主键约束字段的值不允许为NULL,而惟一约束字段的值可为NULL。电脑基础实例上机系列丛书SQL Server数据库应用教程清华大学出版社惟一约束一般定义主键约束时,系统会自动建立索引,索
12、引的默认类型为聚族索引;定义惟一约束时,系统会自动建立一个非聚族索引。使用企业管理器定义与删除惟一约束 使用T-SQL语句定义惟一约束 使用T-SQL语句删除惟一约束 电脑基础实例上机系列丛书SQL Server数据库应用教程清华大学出版社使用企业管理器定义与删除惟一约束下面讲解使用企业管理器定义与删除惟一约束。1)使用企业管理器定义惟一约束【例5-5】 对ReadCategory表中“种类名称”列定义惟一约束,以保证该列取值的惟一性。电脑基础实例上机系列丛书SQL Server数据库应用教程清华大学出版社使用企业管理器定义与删除惟一约束2)使用企业管理器删除惟一约束打开“定义惟一约束”的界面
13、,在“选定的索引”下拉列表框中选择要删除的惟一约束,再单击按钮,即删除了指定的惟一约束。 电脑基础实例上机系列丛书SQL Server数据库应用教程清华大学出版社使用T-SQL语句定义惟一约束 惟一约束定义格式:CONSTRAINT constraint_nameUNIQUE CLUSTERED|NONCLUSTERED(column,n)电脑基础实例上机系列丛书SQL Server数据库应用教程清华大学出版社使用T-SQL语句定义惟一约束1)在创建表的同时定义惟一约束下面讲解如何在创建表时定义惟一约束。【例5-6】 创建名为ReadCategory表的同时定义列“种类名称”为惟一约束(光盘:
14、源文件第5章例5-6)。电脑基础实例上机系列丛书SQL Server数据库应用教程清华大学出版社使用T-SQL语句定义惟一约束2)在修改表时定义惟一约束下面讲解如何在修改表时定义惟一约束。【例5-7】 设已创建表BookCategory,添加惟一约束,使列“类名称”的取值是惟一的(光盘:源文件第5章例5-7)。电脑基础实例上机系列丛书SQL Server数据库应用教程清华大学出版社使用T-SQL语句删除惟一约束 语法格式:ALTER TABLE table_nameDROP CONSTRAINT constraint_name,n【例5-8】 删除【例5-7】定义的惟一约束(光盘:源文件第5章
15、例5-8)。电脑基础实例上机系列丛书SQL Server数据库应用教程清华大学出版社检查约束 检查(CHECK)约束用于限制输入到一列或多列的值的范围,从逻辑表达式判断数据的有效性,也就是一个字段的输入内容必须满足CHECK约束的条件,否则,数据无法正常输入,从而保证数据的域完整性。电脑基础实例上机系列丛书SQL Server数据库应用教程清华大学出版社检查约束使用企业管理器定义与删除检查约束 使用T-SQL语句定义检查约束 使用T-SQL语句删除检查约束 电脑基础实例上机系列丛书SQL Server数据库应用教程清华大学出版社使用企业管理器定义与删除检查约束 下面讲解使用企业管理器定义与删除
16、检查约束。1)使用企业管理器定义检查约束 1【例5-9】 在表Readers中定义一个性别只能为“男”或“女”的检查约束。电脑基础实例上机系列丛书SQL Server数据库应用教程清华大学出版社在表设计器窗口中定义检查约束 在表设计器窗口中定义检查约束 电脑基础实例上机系列丛书SQL Server数据库应用教程清华大学出版社使用企业管理器定义与删除检查约束进入“在表设计器窗口中定义检查约束”的界面,在“选定的约束”下拉列表框中选择要删除的检查约束,单击按钮,即删除了指定的检查约束。 电脑基础实例上机系列丛书SQL Server数据库应用教程清华大学出版社使用T-SQL语句定义检查约束 检查约束
17、的定义格式:CONSTRAINT constraint_nameCHECK (logical_expression)其中参数的含义如下。constraint_name:检查约束名称。logical_expression:检查约束表达式。电脑基础实例上机系列丛书SQL Server数据库应用教程清华大学出版社使用T-SQL语句定义检查约束 1)在创建表的同时定义检查约束【例5-10】 创建名为Readers表的同时定义检查约束,要求“性别”列的输入只能为“男”或“女”(光盘:源文件第5章例5-10)。电脑基础实例上机系列丛书SQL Server数据库应用教程清华大学出版社使用T-SQL语句定义检
18、查约束2)在修改表时定义检查约束【例5-11】 设已创建了表Readers,增加一个性别的检查约束,要求“性别”列的输入只能为“男”或“女”(光盘:源文件第5章例5-11)。电脑基础实例上机系列丛书SQL Server数据库应用教程清华大学出版社使用T-SQL语句删除检查约束 语法格式:ALTER TABLE table_nameDROP CONSTRAINT constraint_name,n【例5-12】 删除【例5-11】定义的检查约束(光盘:源文件第5章例5-12)。电脑基础实例上机系列丛书SQL Server数据库应用教程清华大学出版社默认值约束 若将表中某列定义了默认值(DEFAU
19、LT)约束,如果用户在输入数据时,没有为该列指定数据,那么系统将默认值赋给该列,默认值约束保证了域完整性。电脑基础实例上机系列丛书SQL Server数据库应用教程清华大学出版社默认值约束使用企业管理器定义与删除默认值约束 使用T-SQL语句定义默认值约束 使用T-SQL语句删除默认值约束 电脑基础实例上机系列丛书SQL Server数据库应用教程清华大学出版社使用企业管理器定义与删除默认值约束 下面通过企业管理器来定义与删除默认值约束进行讲解。1)使用企业管理器定义默认值约束【例5-13】 定义表Readers的默认值约束,要求“登记日期”这列的默认值为系统当前日期。电脑基础实例上机系列丛书
20、SQL Server数据库应用教程清华大学出版社使用企业管理器定义与删除默认值约束2)使用企业管理器删除默认值约束在表设计器中,将原来输入的默认值删除,然后单击工具栏中 按钮,即删除了原来定义的默认值约束。 电脑基础实例上机系列丛书SQL Server数据库应用教程清华大学出版社使用T-SQL语句定义默认值约束 默认值约束定义格式:CONSTRAINT constraint_nameDEFAULT constraint_expression FOR column_name电脑基础实例上机系列丛书SQL Server数据库应用教程清华大学出版社使用T-SQL语句定义默认值约束其中参数的含义如下所
21、示。constraint_name:默认值约束名称。constraint_expression:默认值约束表达式。电脑基础实例上机系列丛书SQL Server数据库应用教程清华大学出版社使用T-SQL语句定义默认值约束1)在创建表的同时定义默认值约束【例5-14】 创建名为Readers表的同时定义默认值约束,使 “登记日期”列的默认值为系统日期(光盘:源文件第5章例5-14)。电脑基础实例上机系列丛书SQL Server数据库应用教程清华大学出版社使用T-SQL语句定义默认值约束2)在修改表时定义默认值约束【例5-15】 设已创建表Readers,添加默认值约束,使列“登记日期”的默认值为系
22、统日期(光盘:源文件第5章例5-15)。电脑基础实例上机系列丛书SQL Server数据库应用教程清华大学出版社使用T-SQL语句删除默认值约束 语法格式:ALTER TABLE table_nameDROP CONSTRAINT constraint_name,n【例5-16】 删除【例5-15】定义的默认值约束(光盘:源文件第5章例5-16)。 电脑基础实例上机系列丛书SQL Server数据库应用教程清华大学出版社外键约束 一个数据库中可能包含多个表,可以通过外键(FOREIGN KEY)使这些表关联起来。外键是由表中的一列或多列组成的。如在A表中有一个字段的取值只能是B表中某字段的取值
23、之一,则在A表该字段上创建外键约束,A表称为从表,B表称为主表。定义外键约束的列具有以下特点。电脑基础实例上机系列丛书SQL Server数据库应用教程清华大学出版社外键约束 外键的取值可以为空(NULL)。外键的取值可以重复,但必须是它所引用列(在主表中)的取值之一。引用列必须是定义了主键约束或惟一约束的列。电脑基础实例上机系列丛书SQL Server数据库应用教程清华大学出版社外键约束使用企业管理器定义与删除外键约束 使用T-SQL语句定义外键约束 使用T-SQL语句删除外键约束 电脑基础实例上机系列丛书SQL Server数据库应用教程清华大学出版社使用企业管理器定义与删除外键约束下面讲
24、解如何使用企业管理器来定义和删除外键约束。1)使用企业管理器定义外键约束【例5-17】 建立表Readers与ReadCategory之间的参照完整性。2)使用企业管理器删除外键约束电脑基础实例上机系列丛书SQL Server数据库应用教程清华大学出版社使用企业管理器定义与删除外键约束打开关系设置对话框,在“选定的关系”下拉列表框中选择要删除的关系,单击按钮,打开确认删除对话框,单击按钮,即可删除定义的参照关系。 电脑基础实例上机系列丛书SQL Server数据库应用教程清华大学出版社确认删除对话框 确认删除对话框 电脑基础实例上机系列丛书SQL Server数据库应用教程清华大学出版社使用T
25、-SQL语句定义外键约束 外键约束定义格式:CONSTRAINT constraint_nameFOREIGN KEY (column,n)REFERENCES ref_table(ref_column,n)电脑基础实例上机系列丛书SQL Server数据库应用教程清华大学出版社使用T-SQL语句定义外键约束 1)在创建表的同时定义外键约束【例5-18】 创建名为Readers表的同时,定义列“种类编号”为外键约束(光盘:源文件第5章例5-18)。电脑基础实例上机系列丛书SQL Server数据库应用教程清华大学出版社使用T-SQL语句定义外键约束2)在修改表时定义外键约束【例5-19】 在L
26、ibrary数据库中已创建主表BookCategory和从表Books,并已定义主表中“类编号”为主键,现添加从表中“类编号”为外键(光盘:源文件第5章例5-19)。电脑基础实例上机系列丛书SQL Server数据库应用教程清华大学出版社使用T-SQL语句删除外键约束 语法格式:ALTER TABLE table_nameDROP CONSTRAINT constraint_name,n 【例5-20】 删除【例5-19】定义的外键约束(光盘:源文件第5章例5-20)。电脑基础实例上机系列丛书SQL Server数据库应用教程清华大学出版社默 认 对 象 默认也是一种数据库对象,与规则的使用方
27、法类似,可以绑定到表中的列或用户定义的数据类型上。当向表中插入数据时,如果没有为绑定有默认的列指定数据,那么系统将自动把指定的默认值插入到相应的位置,默认也是实现域完整性的方法之一。电脑基础实例上机系列丛书SQL Server数据库应用教程清华大学出版社默 认 对 象 默认对象和默认约束在功能上是一样的,但两者的使用方式有所区别,默认约束是在创建表或修改表时定义的,嵌入到表的结构之中,在删除表的同时默认约束也被删除。电脑基础实例上机系列丛书SQL Server数据库应用教程清华大学出版社默 认 对 象 而默认对象需要用CREATE DEFAULT语句进行创建,是一种单独存储的数据库对象,它独立
28、于表之外,删除表时并不能删除默认对象,而需要使用DROP DEFAULT语句删除。电脑基础实例上机系列丛书SQL Server数据库应用教程清华大学出版社默 认 对 象创建默认对象 绑定和解除绑定默认对象 删除默认对象 电脑基础实例上机系列丛书SQL Server数据库应用教程清华大学出版社创建默认对象 要想使用对象需要先对其进行创建。使用企业管理器创建默认对象 使用T-SQL的CREATE DEFAULT语句创建默认对象 电脑基础实例上机系列丛书SQL Server数据库应用教程清华大学出版社使用企业管理器创建默认对象【例5-21】 在Library数据库中创建一个默认值为0的默认对象,名称
29、为df_value。绑定了该默认对象的列在插入数据时,如果没有为该列指定数据,则系统自动默认为0。电脑基础实例上机系列丛书SQL Server数据库应用教程清华大学出版社使用T-SQL的CREATE DEFAULT语句创建默认对象 语法格式:CREATE DEFAULT default_name AS constant_expression其中参数的含义如下所示。default_name:所创建的默认对象名称。电脑基础实例上机系列丛书SQL Server数据库应用教程清华大学出版社使用T-SQL的CREATE DEFAULT语句创建默认对象constant_expression:默认对象的常量
30、表达式,可含有常量、内置函数、数学表达式,但不能包含任何列名或其他数据库对象。默认对象必须与列数据类型兼容。电脑基础实例上机系列丛书SQL Server数据库应用教程清华大学出版社使用T-SQL的CREATE DEFAULT语句创建默认对象【例5-22】 对【例5-21】用CREATE DEFAULT语句创建默认对象(光盘:源文件第5章例5-22)。电脑基础实例上机系列丛书SQL Server数据库应用教程清华大学出版社绑定和解除绑定默认对象 下面讲解如何将默认对象进行绑定和删除。绑定默认对象 解除默认对象 电脑基础实例上机系列丛书SQL Server数据库应用教程清华大学出版社绑定默认对象
31、创建默认对象后,还必须把该默认对象绑定到表字段或用户定义数据类型上。1)使用企业管理器绑定默认对象【例5-23】 将【例5-22】中创建的默认对象绑定到表Books的“是否借出”列上。如果该列默认为0,则认为没有借出。电脑基础实例上机系列丛书SQL Server数据库应用教程清华大学出版社绑定默认对象 2)使用系统存储过程sp_bindefault语句绑定默认语法格式sp_bindefault defname=default_name,objname=object_name电脑基础实例上机系列丛书SQL Server数据库应用教程清华大学出版社绑定默认对象 其中,参数含义如下。defname=
32、default_name:由CREATE DEFAULT语句创建的默认名称。objname=object_name:绑定默认对象的列名或用户定义的数据类型。电脑基础实例上机系列丛书SQL Server数据库应用教程清华大学出版社绑定默认对象 如果绑定到列上,object_name应采用“表名字段名”格式。不能将默认对象绑定到timestamp数据类型的列、带identity属性的列或者已经有default约束的列;将一个新的默认对象绑定到列后,原有的默认对象就会被自动解除绑定,只有最后一个被绑定的默认对象才有效。电脑基础实例上机系列丛书SQL Server数据库应用教程清华大学出版社绑定默认对
33、象 例5-24】 用sp_bindefault语句实现【例5-23】的绑定(光盘:源文件第5章例5-24)。电脑基础实例上机系列丛书SQL Server数据库应用教程清华大学出版社解除默认对象 解除默认对象就是把已经绑定到某列或用户定义的数据类型上的默认对象卸掉,使其不再发挥限制作用。1)使用企业管理器解除默认将绑定到表Books“是否借出”列上的默认解除。电脑基础实例上机系列丛书SQL Server数据库应用教程清华大学出版社解除默认对象 2)使用系统存储过程sp_unbindefault语句解除默认语法格式:sp_unbindefault objname=object_name电脑基础实例
34、上机系列丛书SQL Server数据库应用教程清华大学出版社解除默认对象【例5-25】 用sp_unbindefault语句实现【例5-24】的默认解除(光盘:源文件第5章例5-25)。电脑基础实例上机系列丛书SQL Server数据库应用教程清华大学出版社删除默认对象 在删除一个默认对象之前,应首先将默认对象从它所绑定的列或用户自定义数据类型上解除,然后再进行删除。使用企业管理器删除默认 使用DROP DEFAULT语句删除默认 电脑基础实例上机系列丛书SQL Server数据库应用教程清华大学出版社使用企业管理器删除默认 其删除过程和规则基本相同,请读者自己练习。电脑基础实例上机系列丛书S
35、QL Server数据库应用教程清华大学出版社使用DROP DEFAULT语句删除默认 语法格式:DROP DEFAULTdefault_name,n【例5-26】 用DROP DEFAULT语句删除数据库Library中名为df_value的默认(光盘:源文件第5章例5-26)。电脑基础实例上机系列丛书SQL Server数据库应用教程清华大学出版社规 则 规则是数据库对象之一,它的作用类似于CHECK约束,即在向表中添加或修改数据时,用它来限制输入值的取值范围。规则也是实现域完整性的方法之一。电脑基础实例上机系列丛书SQL Server数据库应用教程清华大学出版社规 则规则对象在功能上与C
36、HECK约束相同,但在使用上有所区别,CHECK约束是在创建表或修改表时定义的,嵌入到表的结构之中,在删除表的同时CHECK约束也被删除。电脑基础实例上机系列丛书SQL Server数据库应用教程清华大学出版社规 则而规则对象作为一种单独的数据库对象,需要用CREATE RULE语句进行创建,它独立于表之外,删除表时并不能删除规则对象,而需要使用DROP RULE语句才能将规则对象删除。电脑基础实例上机系列丛书SQL Server数据库应用教程清华大学出版社规 则创建规则 绑定和解除绑定规则 删除规则 电脑基础实例上机系列丛书SQL Server数据库应用教程清华大学出版社建规则 要想使用规则
37、实现域完整性,就必须先创建规则。使用企业管理器创建规则 使用T-SQL的CREATE RULE语句创建规则 电脑基础实例上机系列丛书SQL Server数据库应用教程清华大学出版社使用企业管理器创建规则下面讲解如何在企业管理器中创建规则。在Library数据库中创建一个“值大于等于0”的规则,规则名为rule_range,使用了该规则的列的值被限制为必须大于等于0。电脑基础实例上机系列丛书SQL Server数据库应用教程清华大学出版社使用T-SQL的CREATE RULE语句创建规则语法格式:CREATE RULE AS condition_expression其中参数的含义如下。rule_
38、name:所创建的规则名称。电脑基础实例上机系列丛书SQL Server数据库应用教程清华大学出版社使用T-SQL的CREATE RULE语句创建规则 condition_expression:用来指定规则的条件,该表达式可以是任何在WHERE子句中出现的表达式,但不能包括列名或其他数据库对象名。【例5-27】 用CREATE RULE语句创建【例5-26】中的规则(光盘:源文件第5章例5-27)。电脑基础实例上机系列丛书SQL Server数据库应用教程清华大学出版社绑定和解除绑定规则 创建规则后,要想使用它,必须先对其进行绑定,反之,当不用它时,我们就可以将其解除绑定。绑定规则 解除绑定
39、电脑基础实例上机系列丛书SQL Server数据库应用教程清华大学出版社绑定规则规则在创建后,并不能直接使用,还必须将该规则绑定到表字段或用户定义数据类型上才能使用。规则绑定到字段或用户自定义的数据类型上之后,当在表中添加或修改相应的数据时,必须符合规则,否则添加或修改操作失败。电脑基础实例上机系列丛书SQL Server数据库应用教程清华大学出版社绑定规则如果在列或数据类型上已经绑定了规则,那么当再次向它们绑定规则时,旧规则将自动被新规则覆盖。1)使用企业管理器绑定规则【例5-28】 将【例5-27】中创建的rule_range规则绑定到ReadCategory表的罚金公式列上。电脑基础实例
40、上机系列丛书SQL Server数据库应用教程清华大学出版社绑定规则2)使用系统存储过程sp_bindrule语句绑定规则语法格式:sp_bindrule rulename=rule_name,objname=object_name电脑基础实例上机系列丛书SQL Server数据库应用教程清华大学出版社绑定规则其中,参数含义如下所示。rulename=rule_name:由CREATE RULE语句创建的规则名称。objname=object_name:绑定到规则的列名或用户定义的数据类型,如果将规则绑定到列,object_name应采用“表名字段名”格式。电脑基础实例上机系列丛书SQL Se
41、rver数据库应用教程清华大学出版社绑定规则【例5-29】 用sp_bindrule语句实现【例5-28】的绑定(光盘:源文件第5章例5-29)。 电脑基础实例上机系列丛书SQL Server数据库应用教程清华大学出版社解除绑定解除绑定就是把已经绑定到某列或用户定义的数据类型上的规则卸掉,使其不再发挥限制作用。电脑基础实例上机系列丛书SQL Server数据库应用教程清华大学出版社解除绑定 1)使用企业管理器解除绑定下面讲解使用企业管理器解除绑定。【例5-30】 将绑定到表ReadCategory“罚金公式”列上的规则解除。电脑基础实例上机系列丛书SQL Server数据库应用教程清华大学出版
42、社解除绑定 2)使用系统存储过程sp_unbindrule语句解除绑定语法格式:sp_unbindrule objname=object_name【例5-31】 用sp_unbindrule语句实现【例5-25】的绑定解除(光盘:源文件第5章例5-31)。电脑基础实例上机系列丛书SQL Server数据库应用教程清华大学出版社删除规则 在删除一个规则之前,应首先将规则从它所绑定的列或用户自定义数据类型上解除,然后再进行删除。使用企业管理器删除规则 使用DROP RULE语句删除规则 电脑基础实例上机系列丛书SQL Server数据库应用教程清华大学出版社使用企业管理器删除规则 【例5-32】
43、删除数据库Library中名为rule_range的规则。电脑基础实例上机系列丛书SQL Server数据库应用教程清华大学出版社使用DROP RULE语句删除规则 语法格式:DROP RULErule_name,n【例5-33】 用DROP RULE语句删除数据库Library中名为rule_range的规则(光盘:源文件第5章例5-33)。电脑基础实例上机系列丛书SQL Server数据库应用教程清华大学出版社标识列IDENTITY 每一个表中都可以有一个标识(identity)列,该列值由系统自动生成,用以惟一标识插入到表中的每一行。比如在Readers表中,可以将“读者编号”定义为标识
44、列,这样,每次向表中插入一条读者记录时,SQL Server都会自动生成惟一的值作为读者编号。电脑基础实例上机系列丛书SQL Server数据库应用教程清华大学出版社标识列IDENTITY identity不是数据类型,而是一种列属性。使用标识列时,应该注意以下几点。每个表只允许有一个标识列。标识列不允许空值。电脑基础实例上机系列丛书SQL Server数据库应用教程清华大学出版社标识列IDENTITY标识列只能是int、bigint、smallint、tinyint、numeric或decimal数据类型,并且numeric和decimal数据类型必须将小数位数指定为0。电脑基础实例上机系列
45、丛书SQL Server数据库应用教程清华大学出版社标识列IDENTITY使用企业管理器设置标识属性 使用T-SQL语句定义列的标识属性 电脑基础实例上机系列丛书SQL Server数据库应用教程清华大学出版社使用企业管理器设置标识属性 下面讲解在企业管理器中设置标识属性。【例5-34】 将表Readers中的“读者编号”列设置标识属性,当向表中插入记录时,该列编号由系统自动生成。电脑基础实例上机系列丛书SQL Server数据库应用教程清华大学出版社使用T-SQL语句定义列的标识属性 语法格式:IDENTITY (seed,increment)参数的含义如下。Seed:标识初始值。incre
46、ment:标识增量值。电脑基础实例上机系列丛书SQL Server数据库应用教程清华大学出版社使用T-SQL语句定义列的标识属性【例5-35】 在创建表Readers的同时,定义列“读者编号”为标识列,其中标识初始值和增量值均为1(光盘:源文件第5章例5-35)。电脑基础实例上机系列丛书SQL Server数据库应用教程清华大学出版社上 机 练 习 本节的上机练习创建管理系统的各个约束,通过这个例子,能认识到数据完整性的概念及实施数据完整性的重要性,掌握约束的定义及其删除方法,掌握规则的创建、使用和删除方法和掌握默认对象的创建、使用和删除方法(光盘:源文件第5章上机练习)。电脑基础实例上机系列
47、丛书SQL Server数据库应用教程清华大学出版社上 机 练 习在企业管理器中定义约束 使用T-SQL语句定义约束 设置数据对象 电脑基础实例上机系列丛书SQL Server数据库应用教程清华大学出版社在企业管理器中定义约束 下面讲解如何在企业管理器中定义约束。定义主键约束 定义外键约束 定义惟一约束 电脑基础实例上机系列丛书SQL Server数据库应用教程清华大学出版社定义主键约束将Library数据库中Books表的“图书编号”列定义为主键。电脑基础实例上机系列丛书SQL Server数据库应用教程清华大学出版社定义外键约束 将Library数据库中表Borrow的“图书编号”和“读者
48、编号”列设置为外键。其中“图书编号”外键参照Books表中的“图书编号”主键,“读者编号”外键参照Readers表中的“读者编号”主键。电脑基础实例上机系列丛书SQL Server数据库应用教程清华大学出版社定义惟一约束 为Library数据库中BookCategory表的“类名称”列定义惟一约束。电脑基础实例上机系列丛书SQL Server数据库应用教程清华大学出版社使用T-SQL语句定义约束 下将使用T-SQL创建约束。定义主键约束 定义外键约束 定义惟一约束 电脑基础实例上机系列丛书SQL Server数据库应用教程清华大学出版社使用T-SQL语句定义约束定义默认值约束 定义检查约束 使
49、用规则 使用默认 电脑基础实例上机系列丛书SQL Server数据库应用教程清华大学出版社定义主键约束 用T-SQL语句为BorrowHistory表设定主键,主键由“图书编号”、“读者编号”、“借出日期”三列组成,其名称为pk_tdj。USE LibraryGO电脑基础实例上机系列丛书SQL Server数据库应用教程清华大学出版社定义主键约束ALTER TABLE BorrowHistoryADD CONSTRAINT pk_tdj PRIMARY KEY CLUSTERED(图书编号,读者编号,借出日期)GO电脑基础实例上机系列丛书SQL Server数据库应用教程清华大学出版社定义外键
50、约束 用T-SQL语句为表BorrowHistory定义外键约束。表BorrowHistory中的“图书编号”外键参照Books表中的“图书编号”主键,表BorrowHistory中的“读者编号”外键参照Readers表中的“读者编号”主键。电脑基础实例上机系列丛书SQL Server数据库应用教程清华大学出版社定义惟一约束 用T-SQL语句为BookCategory表中的“类名称”列定义惟一约束,约束名为uk_kindmc。电脑基础实例上机系列丛书SQL Server数据库应用教程清华大学出版社定义默认值约束 用T-SQL语句为Readers表中的“性别”列定义默认值约束,默认值为“男”,约束名为df_xb。电脑基础实例上机系列丛书SQL Server数据库应用教程清华大学出版社定义检查约束 用T-SQL语句为Readers表中的“联系电话”列定义检查约束,保证电话号码中不包含英文字母字符,约束名为ck_dh。在本例中,通配符%代表0或多个字符,a-zA-Z代表指定范围a-z和A-Z之间的任何单个字符。电脑基础实例上机系列丛书SQL Server数据库应用教程清华大学出版社使用规则 用T-SQL语句创建一个规则,名称为rule_xm,将其绑定到Readers表的“姓名”列上,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 专升本生理学练习题(附答案)
- 高级企业人力资源管理师三级测试题及参考答案
- 2025药店供货合同协议书范本
- 2025玉米买卖合同范本
- 公司职工保密协议
- 营销合作协议及补充条款
- 商业房产租赁与买卖协议
- 英语乙卷试题及答案讲解
- 纺织检测规范化运用试题及答案
- 风格融合与设计创新2024年国际商业美术设计师考试试题及答案
- 2024年高中学业水平合格性考试数学模拟试卷试题(含答案详解)
- 能源英语面面观 知到智慧树网课答案
- 16J914-1 公用建筑卫生间
- 电脑时代需要练字辩论材料
- 经典导读与欣赏-知到答案、智慧树答案
- 运动损伤与康复智慧树知到期末考试答案2024年
- 20CS03-1一体化预制泵站选用与安装一
- 上汽大众电子说明书
- 宁德时代2024年社招测评题库
- 诗歌翻译及赏析
- 足球鞋推广方案
评论
0/150
提交评论