《第11章_存储过程.ppt》由会员分享,可在线阅读,更多相关《第11章_存储过程.ppt(26页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第11章 存储过程学习目标o理解存储过程的作用o学会根据需要创建、修改、删除存储过程(带输入、输出参数)o在实际应用开发时能够灵活运用存储过程以提高开发效率主要内容11.1 存储过程概念及优点o存储过程n由SQL语句和流控语句组成的集合(程序段)n能被编译和优化n可以直接调用(类似函数)o优点n预先编译,提高了查询速度n可以通过改变参数实现重用n用户和编程者有不同权限,有一定隔离作用(还可以对存储过程加密)o存储过程与视图比较n存储过程执行一系列SQL语句,包括程序流、逻辑选择及对数据库查询等n视图只能使用Select语句n存储过程可以接收参数,还可以返回单个或多个结果(类似函数调用)n视图不
2、能接收参数n视图常用于多个表的查询n存储过程常用于复杂的一系列处理11.2 创建和执行存储过程o例 11.1 创建一个存储过程,该过程返回Student表中班级编号为“20000001”的所有数据行nuse xkngonCreate Procedure p_StudentnAsnSelect*from Student nwhere ClassNo=20000001ngo存储过程在数据库的“可编程性”中存储过程执行oUse xkoGooExec p_Studento注意n视图的执行方式oselect*from V_Student选中Dbo.p_Student,右选“修改”,可以打开过程内容页面进
3、行修改11.3 带参数的存储过程o例 11.4 创建一个存储过程,能根据给定的班级编号作为输入参数,返回对应班级编号所对应的所有学生信息nuse xkngonCreate Procedure p_StudentParanClassNo nvarchar(8)nAs n Select*from Student where ClassNo=ClassNonGo执行ouse xkogooExec p_StudentPara ClassNo=20000001ogo修改ClassNo=20000002,执行从输出参数返回一个或多个值o例11.4(P229)创建名为p_StudentPara的存储过程,使
4、用该过程,通过给定确定的班级编号,返回该班级编号对应的所有学生信息nuse xkngonCreate procedure p_StudentParanclassNo nvarchar(8)参数名称及定义nasnselect*from student where classNo=classNonGo带参数执行存储过程oExec p_StudentPara classNo=20000001ogooExec p_StudentPara classNo=20000002ogo带输入参数的存储过程o例11.7(P231)创建存储过程p_ClassNum,实现根据给定的班级编号统计该班人数,并返回用户程序
5、ouse xkogooCreate procedure p_ClassNumoClassNo nvarchar(8),ClassNum smallint Outputoas oset ClassNum=o(o select count(*)from Student o -where ClassNo=ClassNoo)oPrint ClassNumogo带参数执行ouse xkogooDeclare ClassNo nvarchar(8),ClassNum smallintoSet ClassNo=20000001oExec p_ClassNum ClassNo,ClassNum Outputo
6、Select ClassNumoGoo问题1:声明的变量必须和存储过程中一样吗?o问题2:去掉“Select ClassNum”会怎样?为什么?修改、删除、重命名存储过程o例11.9 修改p_StudentPara,使其能够根据用户提供的班级名称,而不是班级编号进行模糊查询,并要求加密存储过程实训o练习上述程序o回答两个问题nuse xkngonDeclare ClassNo nvarchar(8),ClassNum smallintnSet ClassNo=20000001nExec p_ClassNum ClassNo,ClassNum OutputnSelect ClassNumnGoo
7、问题1:声明的变量必须和存储过程中一样吗?o问题2:去掉“Select ClassNum”会怎样?为什么?程序ouse xkogooAlter Procedure p_StudentParaoClassName nvarchar(20)oWith Encryptionoasoselect ClassName,StuNo,StuName,Pwdofrom Student,ClassoWhere Student.ClassNo=Class.ClassNooAnd ClassName like%+ClassName+%ogo加密后不能修改执行oExec p_StudentPara ClassName=电子ogo删除ouse xkogoodrop procedure p_Studentogo重命名o使用集成环境修改存储过程名小结o存储过程的作用o创建、执行简单的存储过程o创建、执行带参数(输入、输出)的存储过程o重点掌握n存储过程的创建和执行,特别是带有参数的存储过程实训及作业o上机练习上述例题o实训nP241第1、2、3题n独立完成,组长上交
限制150内