存储过程(课件).ppt
《存储过程(课件).ppt》由会员分享,可在线阅读,更多相关《存储过程(课件).ppt(50页珍藏版)》请在三一办公上搜索。
1、第8章 存储过程,1,本章知识点,存储过程概述存储过程分类 存储过程执行过程 创建存储过程 修改及删除存储过程调用存储过程,存储过程概述,场 景在学生成绩管理系统中,系统用户经常查询学生考试信息,包括:学生名字、所属班级、授课老师、考试科目、考试分数等信息。由于该查询在程序中很多地方都要用到,而且使用频率非常高,因此,开发人员想用一种可以重用而又高性能的方式来实现。,存储过程概述,问题分析所查询的信息分布在student、score、course、teacher四张表中,需要用连接查询,查询代码如下:,SELECT *FROM STUDENT INNER JOIN SCORE ON STUDE
2、NT.SNO=SCORE.SNOINNER JOIN COURSE ON SCORE.CNO=COURSE.CNOINNER JOIN TEACHER ON COURSE.TNO=TEACHER.TNOWHEREGROP BY HAVINGORDER BY,存储过程概述,问题分析存在的问题该查询功能在程序中的很多地方使用,因此同样一段代码要重复写多遍,如果查询信息有所改变,则要改变很多地方,给程序员带来一定的麻烦。系统使用人员每次提交查询,数据库服务器会对查询语句进行编译、解析和执行,而且是反复做同样的事情,浪费服务器资源。,存储过程概述,解决问题解决方案常规SQL语句能实现查询功能,但存在一
3、些问题,如:代码复用率低、可维护性差和性能低,因此SQL SERVER给出了一种可重用、易维护和高效的解决方案 存储过程(Stored Procedure ),存储过程概述,定 义将多次重复执行的实现特定功能的代码段编写成一个“过程”,将其保存在数据库中,并由SQL Server服务器通过其过程名来进行调用,这样的“过程”就叫做存储过程。特 征存储过程是一个SQL语句组合。在创建时进行预编译,首次被调用时进行解析,以后再被调用,则可直接执行存储过程实现了模块化编程。被创建后可以被多个用户共享和重用,有效的减少网络流量,提高SQL语句的执行效率,提高数据库的安全性能,存储过程概述,优 点存储过程
4、允许标准组件式编程。存储过程能够实现较快的执行速度。存储过程能够减少网络流量。存储过程可被作为一种安全机制来充分利用。,创建存储过程,基本语法CREATE PROC | PROCEDURE procedure_name (parameter data_type VARYING = default OUT | OUTPUT ,. WITH ENCRYPTION ASBEGIN ,. END,创建存储过程,基本语法:参数说明procedure_name : 过程名称过程的参数 data_type : parameter : 参数的数据类型 VARYING :指定作为输出参数支持的结果集,仅适用于c
5、ursor参数 DEFAULT : 参数的默认值 OUTPUT : 指示参数是输出参数 ENCRYPTION : 将CREATE PROCEDURE语句的原始文本加密 AS : 指明该存储过程将要执行的动作 : 要包含在过程中的一个或多个T-SQL语句,创建存储过程,执行代码,CREATE PROCEDURE prcListClassesWITH ENCRYPTIONASBEGINSELECT c.classCourseName, d.depName, c.classTeacherName, c.classStartTime, cr.crBuildingName, cr.crRoomNo, c
6、.classLimitNum, c.classExistNum, c.classCredit FROM Classes c JOIN Department d ON c.classdepNo=d.depNo JOIN ClassRoom cr ON c.classRoomNo=cr.crNo WHERE classCourseName=计算机网络 END,执行存储过程,语 法EXECUTE | EXEC proc_name ,Sp_help sp_helptext注 意在执行存储过程时,如果语句是一个批处理中的第一个语句,则不一定要指定 EXECUTE 或EXEC关键字。如果存储过程带有参数,
7、则在执行过程时,需带上相应的参数。,实例分析二:存储过程用输出参数返回值,课堂练习一:音乐信息管理系统中创建存储过程,磁存储过程能够查询出每一种歌曲的平均价格。课堂练习二:音乐信息管理系统中创建存储过程,磁存储过程能够查询出每一类歌曲中最贵的那一首。课堂练习三:在学生成绩管理系统中,需要建立一个存储过程,此存储过程能够查询出每一名同学的平均分数。课堂练习四:在学生成绩管理系统中,需要建立一个存储过程,此存储过程能够查询出每一位老师所带的学生的个数。,执行存储过程,执行存储过程的步骤编译阶段在创建时,系统对其语句进行语法检查。若有语法错误则创建失败,否则创建成功解析阶段在首次执行时,从系统中读取
8、存储过程,并检查引用的数据库对象是否存在。若存在找不到的数据库对象则产生错误,否则进入执行阶段执行阶段依次执行存储过程中的SQL语句,存储过程概述,存储过程分类用户定义的存储过程T-SQL存储过程CLR存储过程系统存储过程临时存储过程远程存储过程,存储过程概述,查看存储过程查看数据库的的存储过程也可以通过两种方法:利用代码命令利用Manager Studio利用代码命令查看存储过程sp_help proc_name命令查看名为proc_name的存储过程。sp_helptext proc_name命令查看名为proc_name的存储过程的详细代码。,存储过程概述,删除存储过程两种方式在Mana
9、gement Studio中选中要删除的存储过程,右键单击“删除”命令即可。如下图。使用DROP命令DROP PROC PROC_ClassInfo,修改存储过程,使用ALTER例 子:ALTER PROCEDURE prcListClasses()ASBEGINselect c.classNo, c.classCourseName, c.classStartTime, c.classTeacherName, cr.crBuildingName, cr.crRoomNo from Classes c join ClassRoom cr on c.classRoomNo=cr.crNoEND,存
10、储过程的输入和输出,参数是存储过程与外界进行交互的一种途径存储过程通过输入参数和输出参数与外界进行交互.存储过程的数据传递方式:输入参数调用者向存储过程输入的数据值输出参数 OUTPUT存储过程向调用者返回的数据值RETURN语句向外返回int型数据,实例分析一:存储过程中使用输入参数,提出问题学生成绩管理系统,用户想更灵活的查询指定学生的相关信息,利用简单的存储过程缺乏灵活性,难以满足用户需求,系统应该能够让用户查询指定课程名称课程相关信息。,实例分析一,分析问题步骤1:确定存储过程所需输入变量步骤2:创建带参数的存储过程步骤3:执行存储过程,验证其是否能输入参数,实例分析一,问题求解步骤1
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 存储 过程 课件

链接地址:https://www.31ppt.com/p-1748543.html