《表格模板-第十课管理表中的数据 精品.ppt》由会员分享,可在线阅读,更多相关《表格模板-第十课管理表中的数据 精品.ppt(79页珍藏版)》请在第一文库网上搜索。
1、Copyright 2007 创智新程 管理表中的数据管理表中的数据 Copyright2007-2009 创智新程Copyright 2007 创智新程本课教学内容本课教学内容y创建规则创建规则y创建缺省创建缺省y管理表中的数据管理表中的数据 0插入数据 0更新数据 0删除数据 y将表中的数据存储到新表将表中的数据存储到新表y清空表中数据清空表中数据Copyright 2007 创智新程创建规则创建规则y创建规则创建规则0任务0解题步骤0课堂练习Copyright 2007 创智新程任务一任务一yFOX公司需要对市场进行调查,要构造一个样本客户公司需要对市场进行调查,要构造一个样本客户表,限
2、定样本空间的大小不能超过表,限定样本空间的大小不能超过10000。y表表SAMPLE_CUSTOMER已经建立了,要求不改变已经建立了,要求不改变表结构的前提下,可以实现自动对样本空间的限制表结构的前提下,可以实现自动对样本空间的限制 。表的结构如下:。表的结构如下: Copyright 2007 创智新程任务任务yCREATE TABLE Sample_Customer( CustomerID INT PRIMARY KEY, CustomerName CHAR(50), CustomerAddress CHAR(50), CustomerCreditLimit MONEY) Copyrig
3、ht 2007 创智新程解题步骤解题步骤y步骤步骤1 1:确定使用什么方法完成任务。:确定使用什么方法完成任务。y步骤步骤2 2:确定编写规则的语句。:确定编写规则的语句。y步骤步骤3 3:创建规则。:创建规则。y步骤步骤4 4:将规则绑定到列。:将规则绑定到列。y步骤步骤5 5:验证规则是否生效。:验证规则是否生效。Copyright 2007 创智新程步骤步骤1 1 y利用前述的利用前述的CHECK约束可以轻松实现上述任务,但约束可以轻松实现上述任务,但是,是,CHECK约束需要修改表的结构。约束需要修改表的结构。y而规则是一个向后兼容的功能,用于执行一些与而规则是一个向后兼容的功能,用于
4、执行一些与 CHECK 约束相同的功能。约束相同的功能。CHECK 约束是用来限制约束是用来限制列值的首选标准方法。列值的首选标准方法。yCHECK 约束比规则简明,一个列只能应用一个规则约束比规则简明,一个列只能应用一个规则,但是可以应用多个,但是可以应用多个CHECK 约束。约束。Copyright 2007 创智新程步骤步骤1 1y所以,在不改变表结构的前提下,使用规则来实施上所以,在不改变表结构的前提下,使用规则来实施上述任务。述任务。Copyright 2007 创智新程步骤步骤2 2 y创建称为规则的对象的语法如下:创建称为规则的对象的语法如下: CREATE RULE ruleA
5、S condition_expressionyrulerule是新规则的名称。规则名称必须符合标识符规则是新规则的名称。规则名称必须符合标识符规则。可以选择是否指定规则所有者的名称。可以选择是否指定规则所有者的名称。 Copyright 2007 创智新程步骤步骤2 2ycondition_expression 是定义规则的条件。是定义规则的条件。y规则可以是规则可以是 WHERE 子句中任何有效的表达式,并子句中任何有效的表达式,并且可以包含诸如算术运算符、关系运算符和谓词(如且可以包含诸如算术运算符、关系运算符和谓词(如 IN、LIKE、BETWEEN)之类的元素。之类的元素。y规则不能引
6、用列或其它数据库对象。可以包含不引用规则不能引用列或其它数据库对象。可以包含不引用数据库对象的内置函数数据库对象的内置函数. . Copyright 2007 创智新程步骤步骤2 2y定义规则的条件包含一个变量。每个局部变量的前面定义规则的条件包含一个变量。每个局部变量的前面都有一个都有一个 符号。表达式引用通过符号。表达式引用通过UPDATEUPDATE或或INSERT INSERT 语语句需要的值。在创建规则时,可以使用任何名称或符句需要的值。在创建规则时,可以使用任何名称或符号表示值,但第一个字符必须是号表示值,但第一个字符必须是 符号符号y示例示例CREATE RULE rulZipC
7、odeASZipCode LIKE (0-9 0-9 0-9)0-90-90-9-0-90-90-9 Copyright 2007 创智新程步骤步骤3 3 y步骤步骤3 3:创建规则:创建规则 CREATE RULE CheckIDAS ID BETWEEN 0 and 10000Copyright 2007 创智新程步骤步骤4 4 y在使用规则之前,需要将规则绑定到相应的列上。具在使用规则之前,需要将规则绑定到相应的列上。具体的语法如下体的语法如下 sp_bindrule rule_name, object_name, FUTUREONLY y参数参数 0rule_name 由 CREATE
8、 RULE 语句创建的规则名称 0Object_name 绑定了规则的表和列或用户定义的数据类型。用户定义的数据类型由sp_addtype来定义的Copyright 2007 创智新程步骤步骤4 40FUTUREONLY 只对约束到用户自定义数据类型的规则才使用 y将将规则规则CheckID绑定到绑定到CustomerID列上的命令如下列上的命令如下 sp_bindrule CheckID,Sample_Customer.CustomerID Copyright 2007 创智新程步骤步骤5 5 y步骤步骤5 5:验证规则是否生效:验证规则是否生效 通过系统存储过程sp_helptext,可以
9、查询到对于规则的定义。 sp_helptext CheckID Copyright 2007 创智新程步骤步骤5 5y输出输出 Text - CREATE RULE CheckIDAS ID BETWEEN 0 and 10000 Copyright 2007 创智新程步骤步骤5 5y下面利用如下数值向下面利用如下数值向Sample_Customer表插入数据表插入数据 INSERT Sample_Customer (CustomerID) VALUES(0)INSERT Sample_Customer (CustomerID) VALUES(2345)INSERT Sample_Custom
10、er (CustomerID) VALUES(9999)INSERT Sample_Customer (CustomerID) VALUES(10001)Copyright 2007 创智新程步骤步骤5 5y执行结果执行结果CustomerIDCustomerID的值的值 执行结果执行结果 0 执行成功 2345 执行成功 9999 执行成功 10001 列的插入或更新与先前的 CREATE RULE 语句所强制的规则冲突。 Copyright 2007 创智新程步骤步骤5 5y如何从数据库中删除一条规则如何从数据库中删除一条规则 利用命令:DROP RULE rule_name 可以将规则从
11、数据库中删除,其中rule_name是将要删除的规则名称。y如何取消列上的规则绑定如何取消列上的规则绑定 利用命令:sp_unbindrule object_name , FUTUREONLY, 可以将列或用户定义数据类型上绑定的规则撤消掉。取消规则意味着规则不在用于列或者用户定义数据类型上。 Copyright 2007 创智新程步骤步骤5 5y下面我们取消刚刚绑定在表下面我们取消刚刚绑定在表Sample_Customer的的CustomerID上的上的CheckID规则规则 0执行: sp_unbindrule Sample_Customer.CustomerID 0然后: INSERT
12、Sample_Customer (CustomerID) VALUES(10001) 0查询分析器返回结果为成功 Copyright 2007 创智新程课堂练习课堂练习y1.在在Sample_Customer表中的表中的CustomerCreditLimit不不能超过能超过$10000,请创建规则实现该之。,请创建规则实现该之。Copyright 2007 创智新程课堂练习课堂练习y2.2.如下的表中:如下的表中: CREATE TABLE Teacher ( TeacherID INT PRIMARY KEY, TeacherName CHAR(50), Address CHAR(50),
13、PhoneNumber CHAR(12) ) Teacher表中的字段表中的字段PhoneNumber的格式为的格式为“(4 4位十位十进制数)进制数)-7-7位十进制数位十进制数”组成的字符串。其中,组成的字符串。其中,7 7位位十进制数中的首位不能为零。请创建规则实现该之十进制数中的首位不能为零。请创建规则实现该之。Copyright 2007 创智新程使用缺省使用缺省 y使用缺省使用缺省 0任务0解题步骤0课堂联系Copyright 2007 创智新程任务二任务二yFOX公司的数据录入人员对于Sample_Customer表的CustomerAddress总是要重复输入“Changsha
14、”,由于表已经创造好了,现在需要在不改变表结构的前提下,可以实现自动将Sample_Customer表的CustomerAddress列输入“Changsha”。 Copyright 2007 创智新程解题步骤解题步骤y步骤步骤1 1:确定完成任务的方法。:确定完成任务的方法。y步骤步骤2 2:确定编写缺省的语句。:确定编写缺省的语句。y步骤步骤3 3:创建缺省。:创建缺省。y步骤步骤4 4:将缺省绑定到列。:将缺省绑定到列。y步骤步骤5 5:验证缺省是否生效。:验证缺省是否生效。Copyright 2007 创智新程步骤步骤1 1 y步骤步骤1 1:确定完成任务的方法:确定完成任务的方法0可
15、以在创建表的时候将某列的值设置成为一个缺省值。在不修改表结构的前提下,我们可以通过创建缺省对象,然后将缺省对象绑定在列对象。0所以,在不改变表结构的前提下,使用缺省来实施上述任务 Copyright 2007 创智新程步骤步骤1 10缺省对象是一个向后兼容的功能,它执行一些与使用 ALTER 或 CREATE TABLE 语句的 DEFAULT 关键字创建的缺省值定义相同的功能。0缺省值定义是限制列数据的首选的,并且是标准的方法,因为定义和表存储在一起,当除去表时,将自动除去缺省值定义。0DEFAULT 对象是为特定数据库定义的。通过将其绑定到缺省值要应用的每个列上,它可为不同表的列所共享。
16、Copyright 2007 创智新程步骤步骤2 2 y步骤步骤2 2:确定编写缺省对象的语句。:确定编写缺省对象的语句。 0语法: CREATE DEFAULT default AS condition_expression0参数: default是缺省对象的名称。缺省对象名称必须符合标识符规则。可以选择是否指定缺省对象所有者的名称。Copyright 2007 创智新程步骤步骤2 2 condition_expression 是缺省对象的条件。缺省对象可以是 WHERE 子句中任何有效的表达式,并且可以包含诸如算术运算符、关系运算符和谓词(如 IN、LIKE、BETWEEN)之类的元素。缺省对象不能引用列或其它数据库对象。可以包含不引用数据库对象的内置函数。 0示例: CREATE DEFAULT defCurrentDate AS GETDATE() Copyright 2007 创智新程步骤步骤3 3 y步骤步骤3 3:创建缺省对象:创建缺省对象 CREATE DEFAULT defCity AS Changsha Copyright 2007 创智新程步骤步骤4 4 y步骤步