新SQL Server 2008数据库应用教程 第2版 教学课件 邱李华 李晓黎 任华 冉兆春 第7章.pptVIP

  • 5
  • 0
  • 约1.14万字
  • 约 67页
  • 2015-11-19 发布于广东
  • 举报

新SQL Server 2008数据库应用教程 第2版 教学课件 邱李华 李晓黎 任华 冉兆春 第7章.ppt

第7章 规则和索引 课程描述 规则和索引是SQL Server中常用的对象,规则可以指定表中数据需要满足的条件,索引则可以提高查询数据的效率。俗话说没有规矩不成方圆,如果没有规则来约束,表中就有可能保存一些不符合逻辑的垃圾数据,例如工资为-5000,年龄为400,性别为马等。这种数据会给应用程序带来混乱。而索引则类似于图书的目录(实际上索引的情况要比目录复杂得多),创建索引可以帮助数据库引擎快速的查询数据。这两个对象虽然不是必须的,但合理地设计规则和索引对于创建完善、高效的数据库应用程序是很有帮助的。 本章知识点 7.1 规则 7.2 索引 7.1 规则 7.1.1 规则的概念 7.1.2 创建规则 7.1.3 查看规则 7.1.4 绑定规则 7.1.5 解除绑定规则 7.1.6 删除规则 7.1.1 规则的概念 规则(Rules)是用于执行一些与检查约束相同的功能。检查约束比规则更简明,一个列只能应用一个规则,但是却可以应用多个检查约束。 检查约束可以在CREATE TABLE语句中定义,而规则作为独立的对象创建,然后绑定在指定的列上。 规则也是维护数据库中数据完整性的一种手段,使用它可以避免表中出现不符合逻辑的数据,例如工资小于0。 7.1.2 创建规则 【例7-1】 【例7-2】 创建一个规则WageRule,指定变量@wage的取值范围为0~50000,代码如下: CREATE RULE WageRule AS @wage BETWEEN 0 AND 50000 7.1.3 查看规则 打开SQL Server Management Studio,在对象资源管理器中展开要管理的数据库,例如HrSystem。再展开“可编程性”/“规则”,可以查看选择数据库中的所有规则对象。如果还没有创建规则对象,则“规则”节点下没有子节点。右击一个规则对象,在弹出菜单中选择“编写规则脚本为”/“CREATE到”/“新查询编辑器窗口”,会打开一个新的查询编辑器窗口,并在其中显示该规则的定义语句,如图7-1所示。 7.1.4 绑定规则 绑定规则是指将已经存在的规则应用到列或用户自定义的数据类型中。使用存储过程sp_bindrule可以将规则绑定到列或用户自定义的数据类型,语法如下: sp_bindrule [ @rulename = ] 规则名, ????[ @objname = ] 对象名 【例7-3】 规则SexRule绑定到表Employees的列Sex上的语句如下: USE HrSystem GO EXEC sp_bindrule SexRule, Employees.Sex GO 执行的结果如下: 已将规则绑定到表的列。 【例7-3】 下面通过一个INSERT语句验证规则的应用效果。执行下面的INSERT语句,向表Employees中插入一条记录。 USE HrSystem GO INSERT INTO Employees (Emp_name, Sex, Title, Wage, IdCard, Dep_id) VALUES (小李, 无, 职员, 10000, 110123xxxx, 1) GO 注意,INSERT语句设置列Sex的值为“无”。因为列Sex绑定到规则SexRule,而在规则SexRule中规定列值只能是“男”或“女”。因此,执行INSERT语句的结果如下: 消息513,级别16,状态0,第2 行 列的插入或更新与先前的CREATE RULE 语句所指定的规则发生冲突。该语句已终止。冲突发生于数据库HrSystem,表dbo.Employees,列Sex。 语句已终止。 返回结果中提示INSERT语句中指定的列Sex的指定值(无)不满足之前绑定的规则。 7.1.5 解除绑定规则 使用存储过程sp_unbindrule可以解除规则的绑定,它的基本语法如下: sp_unbindrule??[ @objname = ] 对象名 对象名可以是表名和列名,也可以是自定义的数据类型。 【例7-4】 使用存储过程sp_unbindrule取消表Employees的列Sex上绑定的规则,具体语句如下: USE HrSystem GO EXEC sp_unbindrule Employees.Sex GO 执行的结果如下: (所影响的行数为 1 行) 已从表的列上解除了规则的绑定。 7.1.6 删除规则 在SQL Server Management Studio中,右键单击指定的规则,在弹出菜单中选择“删除”项则删除指定的规则对象。 也可以使用DROP RULE语句从当前数据库中删除一个或多个规则,语

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档