数据库存储过程精.ppt
《数据库存储过程精.ppt》由会员分享,可在线阅读,更多相关《数据库存储过程精.ppt(49页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、数据库存储过程数据库存储过程第1页,本讲稿共49页10 10 存存 储储 过过 程程 1.1.存储过程的概念存储过程的概念2.2.创建存储过程创建存储过程 3.3.执行存储过程执行存储过程 4.4.存储过程的管理与维护存储过程的管理与维护 第2页,本讲稿共49页1.存储过程的概念存储过程的概念 SQL ServerSQL Server应用操作中应用操作中,存储过程和触存储过程和触发器扮演相当重要的角色发器扮演相当重要的角色,不仅能提高应用不仅能提高应用效率效率,确保一致性确保一致性,更能提高系统执行速度。更能提高系统执行速度。同时,使用触发器来完成业务规则,达到同时,使用触发器来完成业务规则,
2、达到简化程序设计的目的。简化程序设计的目的。第3页,本讲稿共49页1.存储过程的概念存储过程的概念 存储过程包括系统存储过程和用户存储过程。存储过程包括系统存储过程和用户存储过程。存储过程包括系统存储过程和用户存储过程。存储过程包括系统存储过程和用户存储过程。系统存储过程:系统存储过程:系统存储过程:系统存储过程:Execute sp_help Execute sp_help Execute sp_help Execute sp_help 表名表名 :查看表的结构。:查看表的结构。Execute sp_helpindex Execute sp_helpindex 表名表名 :查看表上的索引信息
3、。:查看表上的索引信息。:查看表上的索引信息。:查看表上的索引信息。Execute sp_helptext Execute sp_helptext 视图名:查看视图的定义信视图名:查看视图的定义信视图名:查看视图的定义信视图名:查看视图的定义信息息息息 。第4页,本讲稿共49页1.存储过程的概念存储过程的概念存储过程按返回的数据类型,可分为两存储过程按返回的数据类型,可分为两类:类:一类类似于一类类似于SELECTSELECT语句语句,用于查询数据,用于查询数据,查询到的数据以结果集的形式给出;查询到的数据以结果集的形式给出;另一类另一类存储过程是通过输出参数返回信息存储过程是通过输出参数返回
4、信息,或不返,或不返回信息只执行一个动作。回信息只执行一个动作。存储过程可以嵌套,存储过程可以嵌套,即一个存储过程的内部可以调用另一个存储即一个存储过程的内部可以调用另一个存储过程。过程。第5页,本讲稿共49页1.存储过程的概念存储过程的概念(1 1)基本概念)基本概念存存储储过过程程是是一一组组编编译译在在单单个个执执行行计计划划中中的的Transact-SQLTransact-SQLTransact-SQLTransact-SQL语语句句,它它将将一一些些固固定定的的操操作作集集集集中中中中起起起起来来来来交交交交给给给给SQL ServerSQL ServerSQL ServerSQL
5、Server数据库服务器完成,以实现某个任务。数据库服务器完成,以实现某个任务。存存储储过过程程就就是是预预先先编编译译和和优优化化并并存存储储于于数数据据库库中中的过程。的过程。第6页,本讲稿共49页1.存储过程的概念存储过程的概念(2)存储过程的优点1 1)通通过过本本地地存存储储、代代码码预预编编译译和和缓缓存存技技术术实实现现高性能的数据操作。高性能的数据操作。2 2)通通过过通通用用编编程程结结构构和和过过程程重重用用实实现现编编程程框框架。架。3 3 3 3)通过隔离和加密的方法提高了数据库的安全性。)通过隔离和加密的方法提高了数据库的安全性。)通过隔离和加密的方法提高了数据库的安
6、全性。)通过隔离和加密的方法提高了数据库的安全性。第7页,本讲稿共49页1.存储过程的概念存储过程的概念使用存储过程的好处1 1)允许模块化的程序设计。)允许模块化的程序设计。2 2)更快的执行速度。)更快的执行速度。3 3)有效降低网络流量。)有效降低网络流量。4 4)较好地安全机制。)较好地安全机制。第8页,本讲稿共49页1.存储过程的概念存储过程的概念(3)存储过程的类型 1 1)系统存储过程)系统存储过程 系统存储过程(系统存储过程(System Stored System Stored ProceduresProcedures)主要存储在)主要存储在mastermaster数据库中,
7、数据库中,以以sp_sp_开头,用来进行系统的各项设定,获开头,用来进行系统的各项设定,获取信息,从而为系统管理员管理取信息,从而为系统管理员管理SQL ServerSQL Server提供支持。提供支持。第9页,本讲稿共49页1.存储过程的概念存储过程的概念(3)存储过程的类型 1 1)系统存储过程)系统存储过程)系统存储过程)系统存储过程系统存储过程我们以前接触过:系统存储过程我们以前接触过:Execute sp_help Execute sp_help 表名表名表名表名 :查看表的结构。:查看表的结构。Execute sp_helpindex Execute sp_helpindex 表
8、名表名表名表名 :查看表上的索引信:查看表上的索引信:查看表上的索引信:查看表上的索引信息。息。息。息。Execute sp_helptext Execute sp_helptext Execute sp_helptext Execute sp_helptext 视图名视图名视图名视图名:查看视图的定义信息。:查看视图的定义信息。:查看视图的定义信息。:查看视图的定义信息。SQL Server SQL Server SQL Server SQL Server提供了很多系统存储过程,他们用于系提供了很多系统存储过程,他们用于系提供了很多系统存储过程,他们用于系提供了很多系统存储过程,他们用于系统
9、管理、用户登录管理、权限设置、数据库对象管理、统管理、用户登录管理、权限设置、数据库对象管理、统管理、用户登录管理、权限设置、数据库对象管理、统管理、用户登录管理、权限设置、数据库对象管理、数据复制等操作。数据复制等操作。数据复制等操作。数据复制等操作。第10页,本讲稿共49页1.存储过程的概念存储过程的概念(3)存储过程的类型 2 2)用户自定义的存储过程)用户自定义的存储过程 用户定义的存储过程可分为用户定义的存储过程可分为用户定义的存储过程可分为用户定义的存储过程可分为本地存储过程本地存储过程本地存储过程本地存储过程(Local Local Stored ProceduresStored
10、 Procedures)、)、)、)、远程存储过程远程存储过程远程存储过程远程存储过程(Remote Stored(Remote Stored(Remote Stored(Remote Stored Procedures)Procedures)Procedures)Procedures)、临时存储过程临时存储过程临时存储过程临时存储过程(Temporary Stored(Temporary Stored Procedures)Procedures)、扩展存储过程扩展存储过程(Extended Stored(Extended Stored Procedures)Procedures)等。等。等。
11、等。在这里我们只讨论本地存储过程。在这里我们只讨论本地存储过程。在这里我们只讨论本地存储过程。在这里我们只讨论本地存储过程。第11页,本讲稿共49页1.存储过程的概念存储过程的概念(3)存储过程的类型 2 2)用户自定义的存储过程)用户自定义的存储过程 由用户在当前工作的数据库中创建的存由用户在当前工作的数据库中创建的存储过程,称作本地存储过程。储过程,称作本地存储过程。事实上一般所事实上一般所说的存储过程指的就是本地存储过程。说的存储过程指的就是本地存储过程。第12页,本讲稿共49页2.2.创建存储过程创建存储过程 创建用户自定义存储过程有两种方法:可以使用T-SQL语言的CREATE PR
12、OCEDURE语句创建存储过程,也可以使用对象资源管理器向导创建存储过程。第13页,本讲稿共49页2.2.创建存储过程创建存储过程创建和使用存储过程都必须遵循如下的规则:1 1)创建存储过程的权限默认为属于数据库所有者,该所有)创建存储过程的权限默认为属于数据库所有者,该所有者可以把次权限授予其他用户。者可以把次权限授予其他用户。2 2)存储过程是数据库对象,其名称必须遵守标识符规则。名称标识)存储过程是数据库对象,其名称必须遵守标识符规则。名称标识符的长度最大为符的长度最大为128128位,且数据库中必须惟一。位,且数据库中必须惟一。3 3)只能在当前数据库中创建存储过程。)只能在当前数据库
13、中创建存储过程。4 4)每个存储过程最多可以使用)每个存储过程最多可以使用10241024个参数。个参数。5 5)存储过程最大支持)存储过程最大支持3232层嵌套。层嵌套。第14页,本讲稿共49页2.2.创建存储过程创建存储过程(1)创建不带参数的存储过程创建存储过程的基本语法如下:创建存储过程的基本语法如下:CREATE PROCEDURE CREATE PROCEDURE 存储过程名存储过程名 WITH ENCRYPTIONWITH ENCRYPTION对存储过程加密对存储过程加密对存储过程加密对存储过程加密WITH RECOMPILEWITH RECOMPILE对存储过程重新编译对存储过
14、程重新编译对存储过程重新编译对存储过程重新编译AS AS SQLSQL语句语句第15页,本讲稿共49页2.2.创建存储过程创建存储过程(1)创建不带参数的存储过程执行存储过程的基本语法如下:执行存储过程的基本语法如下:执行存储过程的基本语法如下:执行存储过程的基本语法如下:EXECUTE EXECUTE 存储过程名存储过程名 如果该存储过程是批处理中第一条语句,则如果该存储过程是批处理中第一条语句,则如果该存储过程是批处理中第一条语句,则如果该存储过程是批处理中第一条语句,则EXECEXECEXECEXEC可以省略。可以省略。可以省略。可以省略。简简简简单单单单存存存存储储储储过过过过程程程程
15、类类类类似似似似于于于于将将将将一一一一组组组组SQLSQLSQLSQL语语语语句句句句起起起起个个个个名名名名字字字字,然然然然后后后后就就就就可可可可以以以以在需要时反复调用。复杂一些的则要有输入和输出参数。在需要时反复调用。复杂一些的则要有输入和输出参数。在需要时反复调用。复杂一些的则要有输入和输出参数。在需要时反复调用。复杂一些的则要有输入和输出参数。第16页,本讲稿共49页2.2.创建存储过程创建存储过程【实例实例实例实例】在学生成绩管理数据库中,创建一个名为在学生成绩管理数据库中,创建一个名为在学生成绩管理数据库中,创建一个名为在学生成绩管理数据库中,创建一个名为“grade_pr
16、ograde_prograde_prograde_pro”的的的的存储过程,用于查询不及格学生的成绩信息(包括学号,姓名,课程名存储过程,用于查询不及格学生的成绩信息(包括学号,姓名,课程名存储过程,用于查询不及格学生的成绩信息(包括学号,姓名,课程名存储过程,用于查询不及格学生的成绩信息(包括学号,姓名,课程名称,成绩)。称,成绩)。称,成绩)。称,成绩)。USE USE USE USE 学生成绩管理系统学生成绩管理系统学生成绩管理系统学生成绩管理系统GOGOGOGOcreate procedure grade_procreate procedure grade_procreate proc
17、edure grade_procreate procedure grade_proasasasasselect select select select 学生表学生表学生表学生表.学号学号学号学号,姓名姓名姓名姓名,课程名课程名课程名课程名,分数分数分数分数from from from from 学生表学生表学生表学生表,课程表课程表课程表课程表,成绩表成绩表成绩表成绩表where where where where 学生表学生表学生表学生表.学号学号学号学号=成绩表成绩表成绩表成绩表.学号学号学号学号and and and and 课程表课程表课程表课程表.课程号课程号课程号课程号=成绩表成
18、绩表成绩表成绩表.课程号课程号课程号课程号and and and and 分数分数分数分数60606060gogogogo第17页,本讲稿共49页2.2.创建存储过程创建存储过程【实例实例实例实例】针对教师表针对教师表TeacherTeacher,创建一个名为,创建一个名为teacher_pro1teacher_pro1的存储过程,用于查询所有男教师的信的存储过程,用于查询所有男教师的信息。息。USE USE USE USE 学生成绩管理系统学生成绩管理系统学生成绩管理系统学生成绩管理系统GOGOcreate procedure teacher_procreate procedure teac
19、her_proasasasasselect*select*from from from from 教师表教师表where where where where 性别性别性别性别=男男 gogogogo第18页,本讲稿共49页 执行存储过程执行存储过程 在存储过程建立好后,该存储过程作为数据库对象已经存在,其名称和文件分别存放在sysobjects和syscomments系统表中。可以使用T-SQL的EXECUTE语句来执行存储过程。如果该存储过程是批处理中第一条语句,则EXEC关键字可以省略。执行存储过程的基本语法如下:EXECUTE 存储过程名第19页,本讲稿共49页2.2.创建存储过程创建存
20、储过程(2)创建带输入参数的存储过程一个存储过程可以带一个或多个输入参一个存储过程可以带一个或多个输入参数,输入参数是指由调用程序向存储过程传数,输入参数是指由调用程序向存储过程传递的参数,它们在递的参数,它们在创建存储过程语句中被定创建存储过程语句中被定义义,在,在执行存储过程中给出相应的参数值执行存储过程中给出相应的参数值。第20页,本讲稿共49页2.2.创建存储过程创建存储过程(2)创建带输入参数的存储过程创建带输入参数的存储过程的语法格式如下:创建带输入参数的存储过程的语法格式如下:CREATE PROCEDURE CREATE PROCEDURE 存储过程名存储过程名 参数名参数名
21、数据类型数据类型=默认值默认值,.n,.nWITH ENCRYPTIONWITH ENCRYPTIONWITH RECOMPILEWITH RECOMPILEAS AS SQLSQL语句语句第21页,本讲稿共49页2.2.创建存储过程创建存储过程【例例例例10-210-210-210-2】从学生表中返回指定学号的学生的信息。从学生表中返回指定学号的学生的信息。从学生表中返回指定学号的学生的信息。从学生表中返回指定学号的学生的信息。create procedure u_getstudentcreate procedure u_getstudentnumber varchar(40)number
22、varchar(40)number varchar(40)number varchar(40)asasselect*select*select*select*from from from from 学生表学生表where where 学号学号=number=number=number=number第22页,本讲稿共49页 执行存储过程执行存储过程(2 2)执行带参数的存储过程)执行带参数的存储过程 在执行存储过程的语句中,有两种方式来传递参数值,分别是使用参数名传递参数值和按参数位置传递参数值。使用参数名传递参数值,是通过语句“参数名=参数值”给参数传递值。当存储过程含有多个输入参数时,参数值
23、可以按任意顺序制定,对于允许空值和具有默认值的输入参数可以不给出参数的传递值。第23页,本讲稿共49页执行存储过程执行存储过程(2 2)执行带参数的存储过程)执行带参数的存储过程 1)使用参数名传递参数值 执行使用参数名传递参数值的存储过程的语法格式如下。EXECUTE 存储过程名 参数名=参数值,.n第24页,本讲稿共49页执行存储过程执行存储过程【实例】执行【实例10-2】创建的存储过程u_getstudentexecute u_getstudent number=1002第25页,本讲稿共49页 执行存储过程执行存储过程(2 2)执行带参数的存储过程)执行带参数的存储过程 2)按位置传送
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库 存储 过程
限制150内