《SQL Server数据库应用开发技术》课件第9章.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《《SQL Server数据库应用开发技术》课件第9章.ppt》由用户(momomo)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- SQL Server数据库应用开发技术 SQL Server数据库应用开发技术课件第9章 SQL Server 数据库 应用 开发 技术 课件
- 资源描述:
-
1、第第9 9章章 用户定义函数、存储过程与触发器用户定义函数、存储过程与触发器知识技能目标知识技能目标:1理解用户定义函数、存储过程、触发器的概念理解用户定义函数、存储过程、触发器的概念 和用途和用途2掌握自定义函数的创建、使用、修改和删除掌握自定义函数的创建、使用、修改和删除3掌握存储过程的创建、使用、修改和删除掌握存储过程的创建、使用、修改和删除4掌握触发器的创建、使用、修改和删除掌握触发器的创建、使用、修改和删除 引导案例:引导案例:在教务管理系统中,有些数据操作经常发生。在教务管理系统中,有些数据操作经常发生。例如,经常需要根据姓名查询一个学生的所有选修例如,经常需要根据姓名查询一个学生
2、的所有选修课的信息;学生表中的学生信息一有增减,就需要课的信息;学生表中的学生信息一有增减,就需要自动修改班级表中的班级人数。在高级语言中,需自动修改班级表中的班级人数。在高级语言中,需要重复执行的代码可以设计为函数或者过程。同样,要重复执行的代码可以设计为函数或者过程。同样,在数据库系统中,可以通过用户定义函数、存储过在数据库系统中,可以通过用户定义函数、存储过程、触发器等技术来实现上述功能。本章介绍用户程、触发器等技术来实现上述功能。本章介绍用户定义函数、存储过程、触发器等技术。定义函数、存储过程、触发器等技术。第第9 9章章 用户定义函数、存储过程与触发器用户定义函数、存储过程与触发器9
3、.1 9.1 用户定义函数用户定义函数 9.2 9.2 存储过程存储过程 9.3 9.3 触发器触发器 小结小结 第第9 9章章 用户定义函数、存储过程与触发器用户定义函数、存储过程与触发器9.1 9.1 用户定义函数用户定义函数9.1.1 用户定义函数的概念及分类用户定义函数的概念及分类 在SQL Server 中,除了系统内置的函数外,用户可以在数据库中自己定义函数。用户自定义函数是由一个或多个T_SQL语句组成的子程序,它可以接受参数、执行操作,并将操作结果以值的形式返回。返回目录 SQL Server的用户定义函数分为两类:标量值函数、表值函数。表值函数又分为内嵌表值函数和多语句表值函
4、数。9.1 9.1 用户定义函数用户定义函数在SQL Server中,除了系统内置的函数外,用户可以在数据库中自己定义函数。用户定义函数是由一个或多个T_SQL语句组成的子程序,它可以接受参数、执行操作,并将操作结果以值的形式返回。SQL Server的用户定义函数分为两类:标量值函数和表值函数。表值函数又分为内嵌表值函数和多语句表值函数。这里只介绍标量值函数和内嵌表值函数。9.1.1 用户定义函数的概念及分类用户定义函数的概念及分类 返回目录9.1 9.1 用户定义函数用户定义函数在SQL Server 中使用用户定义函数有以下优点:(1)允许模块化程序设计 函数存储在数据库中,只需创建一次
5、,以后便可以在程序中调用任意次。用户定义函数可以独立于程序源代码进行修改。(2)执行速度更快 T-SQL 用户定义函数通过缓存计划并在重复执行时重用它来降低 T-SQL 代码的编译开销。因此每次使用用户定义函数时均无须重新解析和重新优化,从而缩短了执行时间。(3)减少网络流量 某些约束比较复杂,无法用单一标量的表达式表示,此时可以表示为函数,在 WHERE 子句中调用,以减少发送至客户端的数据量。9.1.1 用户定义函数的概念及分类用户定义函数的概念及分类 返回目录9.1 9.1 用户定义函数用户定义函数9.1.2 创建和使用标量值用户定义函数创建和使用标量值用户定义函数 标量值用户定义函数返
6、回单个数据值,即标量值。返回类型可以是除 text、ntext、image、cursor 和 timestamp 外的任何数据类型。返回目录9.1 9.1 用户定义函数用户定义函数9.1.2 创建和使用标量值用户定义函数创建和使用标量值用户定义函数 1 1创建标量值用户定义函数创建标量值用户定义函数(1 1)用)用T_SQLT_SQL语句创建语句创建语法格式:语法格式:CREATE FUNCTION 函数名(参数名 AS 参数类型,n )RETURNS 返回值类型 BEGIN 函数体 RETURN 标量值表达式 END【例9.1】统计某专业男女生同学的比例。返回目录9.1 9.1 用户定义函数
7、用户定义函数9.1.2 创建和使用标量值用户定义函数创建和使用标量值用户定义函数 1 1创建标量值用户定义函数创建标量值用户定义函数(2 2)用)用SQL Server Management StudioSQL Server Management Studio创建创建1)打开SQL Server Management Studio;2)在对象资源管理器中展开要建创建用户定义函数的数据库;3)依次展开数据库下“可编程性”、“函数”、“标量值函数”;4)在“标量值函数”结点上单击右键,选择“新建标量值函数”;5)在随后打开的通用模板中已经给出了创建标量值函数所需的语句的基本格式。修改其中的语句为需
8、要的语句;6)单击“分析”按钮,检查语法是否正确;7)单击“执行”按钮,执行代码。返回目录9.1 9.1 用户定义函数用户定义函数9.1.2 创建和使用标量值用户定义函数创建和使用标量值用户定义函数 2 2标量值用户自定义函数的使用标量值用户自定义函数的使用 可以在使用标量表达式的位置调用标量值函数,包括计算列和 CHECK 约束定义中。【例9.2】查询“计算机应用技术”专业男女生的比例。返回目录9.1 9.1 用户定义函数用户定义函数9.1.3 创建和使用表值用户定义函数创建和使用表值用户定义函数 内嵌表值用户定义函数返回一个SELECT 语句查询的结果集,是table数据类型。1 1创建内
9、嵌表值函数创建内嵌表值函数(1)用)用T_SQL语句创建语句创建语法格式:语法格式:CREATE FUNCTION 函数名(参数名 AS 参数类型,n )RETURNS TABLE RETURN 查询语句【例9.3】创建用户定义函数,其功能是可用于查看某班某课程的成绩单。返回目录9.1 9.1 用户定义函数用户定义函数9.1.3 创建和使用表值用户定义函数创建和使用表值用户定义函数 1 1创建内嵌表值函数创建内嵌表值函数(2 2)用)用SQL Server Management StudioSQL Server Management Studio创建创建 1)打开SQL Server Mana
10、gement Studio。2)在对象资源管理器中展开要创建用户定义函数的数据库,如“教务管理数据库”。3)依次展开数据库下“可编程性”、“函数”、“表值函数”节点。4)在“表值函数”结点上单击右键,选择“新建内联表值函 数”,将打开一个通用模板。5)模板已经给出了创建标量值函数所需的语句的基本格式。修 改其中的语句为需要的语句。6)单击“分析”按钮,检查语法是否正确。7)单击“执行”按钮,完成。返回目录9.1 9.1 用户定义函数用户定义函数9.1.3 创建和使用表值用户定义函数创建和使用表值用户定义函数 2 2调用内嵌表值函数调用内嵌表值函数 内嵌表值函数在 SELECT、INSERT、U
11、PDATE 或 DELETE 语句的FROM 子句中调用。在调用函数的时候要指明函数的拥有者。【例9.4】查“计算机应用班071班”的“高等数学”课程的成绩单。返回目录9.1 9.1 用户定义函数用户定义函数9.1.4 查看用户定义函数查看用户定义函数1 1用用T-SQLT-SQL语句查看用户定义函数语句查看用户定义函数 可以通过使用一些系统函数和系统存储过程来查看用户定义函数。(1 1)查看函数的定义)查看函数的定义查看函数的定义可使用OBJECT_DEFINITION 和sp_helptext。【例9.5】查看用户定义函数“某班某课成绩单”的定义 【例9.6】查看用户定义函数“某班某课成绩
12、单”的定义(2 2)获得有关函数的信息)获得有关函数的信息获得有关函数的信息(例如函数的创建时间、参数等)可使用sp_help。【例9.7】查看用户定义函数“某班某课成绩单”的信息返回目录9.1 9.1 用户定义函数用户定义函数9.1.4 查看用户定义函数查看用户定义函数1 1用用T-SQLT-SQL语句查看用户定义函数语句查看用户定义函数(3 3)查看用户定义函数的依赖关系)查看用户定义函数的依赖关系查看用户定义函数的依赖关系可使用sp_depends 【例9.8】查看用户定义函数“某班某课成绩单”的依赖关系返回目录9.1 9.1 用户定义函数用户定义函数9.1.4 查看用户定义函数查看用户
13、定义函数2 2用用SQL Server Management StudioSQL Server Management Studio查看用户定义函数查看用户定义函数 1)打开SQL Server Management Studio。2)在对象资源管理器中展开要查看的数据库,如“教务管理数据库”。3)依次展开数据库下“可编程性”、“函数”节点。4)在“函数”节点下,展开“表值函数”或“标量值函数”,找到需要查看信息的函数,并在函数名上单击右键,选择“查看依赖关系”,查看与函数有依赖关系的对象的信息;选择“编写函数脚本为”-“create到”-“新建查询编辑窗口”查看函数源代码。返回目录9.1 9.
14、1 用户定义函数用户定义函数9.1.5 修改用户定义函数修改用户定义函数 1 1用用T_SQLT_SQL语句修改用户定义函数语句修改用户定义函数 使用ALTER FUNCTION语句,与CREATE FUNCTION语句类似。【例9.9】修改“某专业男女比例”函数,将比值的小数位设置为1位。返回目录9.1 9.1 用户定义函数用户定义函数9.1.5 修改用户定义函数修改用户定义函数 2.2.用用SQL Server Management StudioSQL Server Management Studio修改自定义函数修改自定义函数 用SQL Server Management Studio修
15、改自定义函数的方法和查看函数信息的方法类似,只需在第4步中函数名上单击右键时,在快捷菜单中选择“修改”即可打开函数脚本进行修改,最后选择“执行”按钮。返回目录9.1 9.1 用户定义函数用户定义函数9.1.6 删除用户定义函数删除用户定义函数 1 1用用T_SQLT_SQL语句删除用户定义函数语句删除用户定义函数 语法格式:语法格式:DROP FUNCTION 函数名,.n 【例9.10】将自定义函数“某专业男女比例”删除。2 2用用SQL Server Management StudioSQL Server Management Studio删除自定义函数删除自定义函数 用SQL Serve
16、r Management Studio删除自定义函数的方法和查看函数信息的方法类似,只需在第4步中函数名上单击右键时,在快捷菜单中选择“删除”命令,并在弹出的“删除对象”窗口中选择“确定”按钮。返回目录9.2 9.2 存储过程存储过程 9.2.1 存储过程的概念存储过程的概念 存储过程是存储在SQL Server服务器中的一组预编译过的T-SQL语句组成的模块,用来完成某项特定的功能。存储过程可以接受输入参数并以输出参数的格式向调用过程或批处理返回多个值。存储过程分为用户定义的存储过程和系统存储过程。系统存储过程由系统自带并存储在master数据库中,带有 sp_ 前缀,在任何数据库中都可以调
17、用。系统存储过程功能强大,种类繁多,几乎可以满足各类数据库管理需求。用户定义的存储过程是由用户创建的,必须在所属的数据库中才能被执行。返回目录9.2 9.2 存储过程存储过程 9.2.2 存储过程的优点存储过程的优点(1)执行速度快存储过程是预先编译好放在数据库内的,减少编译语句所花费的时间。(2)提高系统安全性通过为用户授权,使用户必须通过执行存储过程来访问数据,而不能直接访问存储过程中引用的对象,从而提高了数据安全性。(3)程序设计模块化存储过程一旦创建,以后即可在程序中调用任意多次。这可以改进应用程序的可维护性。XI(4)减少网络通信流量一个需要数百行 T-SQL 代码的操作可以通过一条
18、执行过程代码的语句来执行,而不需要在网络中发送数百行代码。返回目录9.2 9.2 存储过程存储过程 9.2.3 创建存储过程创建存储过程 1 1用用T_SQLT_SQL语句创建存储过程语句创建存储过程语法格式:语法格式:CREATE PROCEDURE 存储过程名 参数 数据类型 OUTPUT ,.n AS BEGIN SQL语句.n END说明:存储过程可以带参数,也可以不带参数,参数可以是输入参数,也可以是输出参数,输出参数用OUTPUT指明。返回目录9.2 9.2 存储过程存储过程 9.2.3 创建存储过程创建存储过程 1 1用用T_SQLT_SQL语句创建存储过程语句创建存储过程【例9
19、.11】创建“学生名单”存储过程,其功能是输出所有学生的名单【例9.12】创建“某班学生名单”存储过程,其功能是查看某个班级的学生名单,结果按学号排序。【例9.13】创建“查询学生”存储过程,其功能是根据学号查询学生的姓名和年龄。返回目录9.2 9.2 存储过程存储过程 9.2.3 创建存储过程创建存储过程 2 2用用SQL Server Management StudioSQL Server Management Studio创建存储过程创建存储过程 1)打开SQL Server Management Studio。2)在对象资源管理器中展开要创建存储过程的数据库,如“教务管理数据库”。3)
展开阅读全文