SQL Server实用简明教程(第三版) 教学课件 ppt 作者 978-7-302-17354-0 ch10

上传人:E**** 文档编号:89362129 上传时间:2019-05-24 格式:PPT 页数:45 大小:346KB
返回 下载 相关 举报
SQL Server实用简明教程(第三版) 教学课件 ppt 作者 978-7-302-17354-0 ch10_第1页
第1页 / 共45页
SQL Server实用简明教程(第三版) 教学课件 ppt 作者 978-7-302-17354-0 ch10_第2页
第2页 / 共45页
SQL Server实用简明教程(第三版) 教学课件 ppt 作者 978-7-302-17354-0 ch10_第3页
第3页 / 共45页
SQL Server实用简明教程(第三版) 教学课件 ppt 作者 978-7-302-17354-0 ch10_第4页
第4页 / 共45页
SQL Server实用简明教程(第三版) 教学课件 ppt 作者 978-7-302-17354-0 ch10_第5页
第5页 / 共45页
点击查看更多>>
资源描述

《SQL Server实用简明教程(第三版) 教学课件 ppt 作者 978-7-302-17354-0 ch10》由会员分享,可在线阅读,更多相关《SQL Server实用简明教程(第三版) 教学课件 ppt 作者 978-7-302-17354-0 ch10(45页珍藏版)》请在金锄头文库上搜索。

1、第1页,第10章 视图、存储过程、触发器和用户定义函数,本章概述 本章的学习目标 主要内容,第2页,本章概述,从业务数据角度来看,同一种业务数据有可能分散在不同的表中,如何从一个数据库对象中查看这些分散存储的数据呢?从安全角度来看,不同的操作人员或许只能看到表中不同部分的数据。从数据的应用角度来看,一个报表中的数据往往来自于多个不同的表中,如何提高报表的设计效率呢?视图是解决这些问题的一种有效手段。存储过程是一个可重用的代码模块,可以高效率地完成指定的操作。触发器是一种特殊类型的存储过程,可以实现自动化的操作。用户定义函数是由用户根据自己应用程序的需要而定义的可以完成特定操作的函数。 本章将全

2、面研究视图、存储过程、触发器、用户定义函数等数据库对象的特点和使用方式。,第3页,本章的学习目标,理解视图的概念、特点和类型 掌握使用CREATE VIEW语句创建视图 掌握通过视图修改基表中的数据 了解存储过程的特点、类型和作用 掌握使用CREATE PROCEDURE语句创建存储过程 理解存储过程的执行方式 理解DML触发器的特点和创建方式 理解和掌握DML触发器的工作原理 理解和掌握DDL触发器的特点和创建方式 了解用户定义函数的类型和特点,第4页,主要内容,10.1 视图 10.2 存储过程 10.3 触发器 10.4 用户定义函数 10.5 本章小结,第5页,10.1 视图,本节全面

3、研究与视图有关的内容。首先,分析视图的作用和存在意义。其次,研究了视图的类型和特点。接下来,探讨创建视图技术。然后,讨论如何通过视图修改表中数据。最后,浏览如何通过图形化工具来创建和维护视图。,第6页,概述,数据是存储在表中,对数据的操纵主要是通过表进行的。但是,仅仅通过表操纵数据会带来一系列的性能、安全、效率等问题。 解决上述问题的一种有效手段就是视图。视图可以把表中分散存储的数据集成起来,可以让操作人员通过视图而不是通过表来访问数据,可以提高报表的设计效率等。,第7页,视图的概念,视图是查看数据库表中数据的一种方式。视图提供了存储预定义的查询语句作为数据库中的对象以备以后使用的能力。视图是

4、一种逻辑对象,是一种虚拟表。除非是索引视图,否则视图不占物理存储空间。在视图中被查询的表称为视图的基表。 大多数的SELECT语句都可以用在视图的创建中。,第8页,视图的特点,从技术上讲,视图是SELECT语句的存储定义。最多可以在视图中定义一个或多个表的1 024列,所能定义的行数是没有限制的。 使用视图有许多优点,例如集中用户使用的数据、掩码数据的复杂性、简化权限管理,以及为向其他应用程序输出而重新组织数据等。,第9页,视图的类型,在Microsoft SQL Server 2005系统中,可以把视图分成3种类型,即标准视图、索引视图和分区视图。 一般情况下的视图都是标准视图,它是一个虚拟

5、表并不占物理存储空间。 如果希望提高聚合多行数据的视图性能,那么可以创建索引视图。索引视图是被物理化的视图,它包含有经过计算的物理数据。 通过使用分区视图,可以连接一台或多台服务器中成员表中的分区数据,使得这些数据看起来就象来自一个表中一样。,第10页,创建视图,在Microsoft SQL Server 2005系统中,主要使用CREATE VIEW语句创建视图。只能在当前数据库中创建视图。当创建视图时,Microsoft SQL Server首先验证视图定义中所引用的对象是否存在。 视图的名称应该符合命名规则。是否指定视图的架构则是可选的。视图的外表和表的外表是一样的,因此为了区别表和视图

6、,建议采用一种命名机制,使人容易分辨出视图和表,例如可以在视图名称之前使用vw_作为前缀。,第11页,使用CREATE VIEW语句,第12页,使用WITH ENCRYPTION子句,第13页,删除视图,第14页,通过视图修改数据,无论在什么时候修改视图的数据,实际上都是在修改视图的基表中的数据。在满足一定的限制条件下,可以通过视图自由地插入、删除和更新基表中的数据。 在修改视图时,要注意下列一些条件: 不能同时影响两个或两个以上的基表。可以修改由两个或两个以上的基表得到的视图,但是每一次修改的数据只能影响一个基表。 某些列不能修改。这些不能修改的列包括通过计算得到值的列、有内置函数的列或有合

7、计函数的列等。 如果影响到表中那些没有缺省值的列,那么可能引起错误。 如果在视图定义中指定了WITH CHECK OPTION选项,那么系统验证所修改的数据。,第15页,使用图形化工具定义视图,除了使用CREATE VIEW语句之外,也可以使用图形化工具定义视图。 在SQL Server Management Studio环境中的“对象资源管理器”中打开指定的服务器实例,在“数据库”节点打开指定的数据库例如AdventureWorks数据库节点,选中“视图”节点。右击“视图”节点,从弹出的快捷菜单中选择“新建视图”命令,则出现如图10-9所示的“添加表”对话框。,第16页,主要内容,10.1

8、视图 10.2 存储过程 10.3 触发器 10.4 用户定义函数 10.5 本章小结,第17页,10.2 存储过程,存储过程可以提高应用程序的设计效率和增强系统的安全性。 本节全面介绍存储过程的特点、类型、创建及执行等内容。,第18页,存储过程的特点,存储过程是一个可重用的代码模块,可以高效率地完成指定的操作。在Microsoft SQL Server 2005系统中,既可以使用Transact-SQL语言编写存储过程,也可以使用CLR方式编写存储过程。使用CLR编写存储过程是Microsoft SQL Server 2005系统与.NET框架紧密集成的一种表现形式。 使用Transact-

9、SQL语言编写存储过程而不使用存储在客户端计算机上的Transact-SQL语言有许多优点,第19页,存储过程的类型,在Microsoft SQL Server 2005系统中,提供了3种基本的存储过程类型,即 用户定义的存储过程 扩展存储过程 系统存储过程,第20页,创建存储过程的规则,在设计和创建存储过程中应该满足一定的约束和规则。只有满足了这些约束和规则,才可以创建有效的存储过程。 虽然说在CREATE PROCEDURE语句中可以包括任意数量和类型的Transact-SQL语句,但是某些特殊的语句是不能包含在存储过程定义中的。,第21页,使用CREATE PROCEDURE语句,在Mi

10、crosoft SQL Server 2005系统中,可以使用CREATE PROCEDURE语句创建存储过程。需要强调的是,必须具有CREATE PROCEDURE权限才能创建存储过程,存储过程是架构作用域中的对象,只能在本地数据库中创建存储过程。 在创建存储过程时,应该指定所有的输入参数、执行数据库操作的编程语句、返回至调用过程或批处理表明成功或失败的状态值、捕捉和处理潜在错误的错误处理语句。,第22页,创建一个带参数的存储过程,第23页,执行存储过程,在Microsoft SQL Server 2005系统中,可以使用EXECUTE语句执行存储过程。EXECUTE语句也可以简写为EXEC

11、。如果将要执行的存储过程需要参数,那么应该在存储过程名称后面带上参数值。 在图10-14的所示的示例中,使用EXEC语句执行了图10-1所示中创建的HumanResources.GetEmployeeFullName存储过程。由于该存储过程没有参数,所以可以直接使用EXEC语句来执行。,第24页,使用OUTPUT参数执行存储过程,第25页,修改和删除存储过程,在Microsoft SQL Server 2005系统中,可以使用ALTER PROCEDURE语句修改已经存在的存储过程。修改存储过程不是删除和重建存储过程,其目的是保持存储过程的权限不发生变化。 如果某个存储过程不再需要了,可以使用

12、DROP PROCEDURE语句删除该存储过程。,第26页,存储过程的执行过程,存储过程创建之后,在第一次执行时需要经过语法分析阶段、解析阶段、编译阶段和执行阶段。,第27页,查看存储过程的信息,在Microsoft SQL Server 2005系统中,可以使用系统存储过程和目录视图查看有关存储过程的信息。 如果希望查看存储过程的定义信息,那么可以使用sys.sql_modules目录视图、OBJECT_DEFINITION元数据函数、sp_helptext系统存储过程等。 如果希望隐藏存储过程定义文本的信息,那么在定义存储过程时使用WITH ENCRYPTION子句即可。除此之外,使用sp

13、.sql_dependencies、sp_depends等系统存储过程可以查看存储过程的依赖信息。使用sys.objects、sps.procedures、sys.parameters、sys.numbered_procedures等目录视图可以查看有关存储过程的名称、参数等信息。,第28页,主要内容,10.1 视图 10.2 存储过程 10.3 触发器 10.4 用户定义函数 10.5 本章小结,第29页,10.3 触发器,Microsoft SQL Server 2005系统提供了两种强制业务逻辑和数据完整性的机制,即约束技术和触发器技术。 前面已经讲过了约束技术,本节讲述触发器技术。,第

14、30页,触发器的概念,一般地认为,触发器是一种特殊类型的存储过程,它包括了大量的Transact-SQL语句。 但是触发器又与存储过程不同,例如存储过程可以由用户直接调用执行,但是触发器不能被直接调用执行,它只能自动执行。,第31页,触发器的类型,按照触发事件的不同,可以把Microsoft SQL Server 2005系统提供的触发器分成两大类型,即DML触发器和DDL触发器。 需要补充的是,DDL触发器是Microsoft SQL Server 2005系统新增的功能,以前的版本只有DML触发器。 当数据库中发生数据操纵语言(data manipulation language,DML)

15、事件时将调用DML触发器。DML事件包括在指定表或视图中修改数据的INSERT语句、UPDATE语句或DELETE语句 需要说明的是,在Microsoft SQL Server 2005系统中,可以创建CLR触发器。CLR触发器既可以是DML触发器,也可以是DDL触发器。,第32页,DML触发器的类型,按照触发器事件类型的不同,可以把Microsoft SQL Server 2005系统提供的DML触发器分成3种类型,即INSERT类型、UPDATE类型和DELETE类型。这也是DML触发器的基本类型。,第33页,创建DML触发器,DML触发器是一种特殊类型的存储过程,所以DML触发器的创建和

16、存储过程的创建方式有很多相似的地方。可以使用CREATE TRIGGER语句创建DML触发器。 在CREATE TRIGGER语句中,指定了定义触发器的基表或视图、触发事件的类型和触发的时间、触发器的所有指令等内容。,第34页,DML触发器的工作原理,前面介绍了DML触发器的基本概念、类型、特点、创建、修改、删除等内容,现在我们来看看触发器是如何工作的。通过了解触发器的工作原理,就可以更好地使用触发器,写出效率更高的触发器。下面主要介绍INSERT、DELETE和UPDATE类型触发器的工作原理。 当向表中插入数据时,INSERT触发器触发执行。当INSERT触发器触发时,新的记录增加到触发器表中和inserted表中。该inserted表是一个逻辑表,保存了所插入记录的拷贝,允许用户参考INSERT语句中数据。触发器可以检查inserted表,来确定该触发器的操作是否应该执行和如何执行。在inserted表中的那些记录,总是触发器表中一行或多行记录的冗余。,第35页,触发器嵌套,任何触发器都可以包含影响另外一个表的INSERT、UPDATE或DELETE语句。当允许触发器嵌套时,一

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

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

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