一、存储过程:
SQL语句必须先编译再执行,存储过程则是一系列为达成特定目标的SQL语句组合,编译后存放在数据库里,用户只需输入存储过程名称,若有参数则需同时提供相应值来启动它。

(资料图片)
存储过程是一种可执行的代码段,在数据库系统里建立并固定下来,它由SQL指令和流程控制逻辑构成。这种数据库对象特别适用于跨多个软件系统或硬件环境运行同一套操作,或者将特定的业务逻辑进行整合。在数据管理层面,存储过程能够模仿面向对象编程中的封装特性,为数据访问提供了一种受控的途径。
1、为什么需要存储过程:
有人认为,没有必要把繁杂流程包装成MySQL存储过程,用软件(C++/JAVA)同样可以完成复杂功能。程序调用API执行通常速度较慢,因为应用程序需要通过引擎将MySQL语句交给MySQL引擎来处理,这不如直接让MySQL负责它最擅长的工作,因此可以在开发中把一些常用操作包装成存储过程
2、存储过程和自定义函数的区别:
(1)存储过程实现的功能要复杂一些,而函数的针对性更强;
(2)存储过程可以返回多个值,函数只能有一个返回值;
存储过程通常单独运行,函数则能够嵌入其他SQL语句中发挥作用。
二、存储过程的优点:
强化SQL语言的能力和适应性:存储过程借助控制语句构建,具备显著的可变通性,能够执行精密的辨别和相对繁复的计算。
标准组件式编程方式下,存储过程一旦建立,便可在软件中反复使用,无需每次都重写其SQL指令。同时,数据库技术人员能够随时调整存储过程的内容,而不会波及到程序代码本身。
运行效率更高:当某个操作涉及大量SQL指令,或者需要反复执行时,存储过程比批处理的速度优势非常明显。这是由于存储过程具备预编译特性。首次调用存储过程时,查询优化器会对其进行深入分析并优化,最终将执行方案保存在系统表中。执行计划处理-SQL指令时,每次操作都需要进行代码转换和性能调整,因此运行效率不如其他方式。
降低网络传输量:对于同一个数据库对象的处理(比如检索、变更),倘若相关指令被整合为存储程序,那么当在用户端启动该存储程序时,网络传输的仅是启动指令,这样能显著降低网络传输量,并减轻网络负担。
通过控制执行特定存储过程的许可权,可以限定对关联数据的查阅权,防止未获授权者接触信息,确保了资料的安全。
三、MySQL存储过程的相关操作:
1、存储过程的创建:
语法:
MySQL原生的语句分隔符是分号,若未事先设定,程序会将存储过程当作普通SQL指令来解析,从而引发编译错误,因此需预先使用“ //”来指定当前分隔符,使程序将两个“ //”夹住的部分识别为存储过程代码,并不会执行该部分内容;而使用“ ;”则表示将分隔符恢复为默认值。
存储过程具备参数功能,依据实际需求,可设置输入、输出或双向参数,若存在多个参数,需用逗号进行分隔。在MySQL中,存储过程的参数定义于其声明部分,包含三种类型,分别为IN、OUT和INOUT。
参数的设定值需在执行存储方法时明确给出,存储方法内部对该参数的更改无法传递回来,最终会恢复为预设的数值
OUT:该值可在存储过程内部被改变,并可返回
INOUT:调用时指定,并且可被改变和返回
过程体从开始到结束,以BEGIN和END作为标记,明确界定范围。
2、MySQL存储过程的调用:
通过调用函数名,并搭配一个括号,括号内可依据情况,填入参数,这些参数涵盖输入值、输出值以及既可输入也可输出的值。
3、MySQL存储过程的查询信息:
4、MySQL存储过程的修改:
运用ALTER指令,可以调整已创建的预设存储程序,这种调整不会波及到其他存储程序或存储功能。
(1)参数表示存储过程或函数的名称;
(2)参数指定存储函数的特性。
这个子程序运用了SQL语句,但是里面不包括任何读取数据或者写入数据的语句。
(4)NO SQL表示子程序中不包含SQL语句;
执行查询操作表明该程序单元内嵌有获取信息的指令;
(6) SQL DATA表示子程序中包含写数据的语句。
SQL中的花括号用来界定操作权限,确定哪些人具备操作资格,意味着操作权仅限于创建者本人,其他人无法实施;而竖线符号则说明被授权方有权进行操作。
(8) ""是注释信息。
5、MySQL存储过程的删除:
扫一扫在手机端查看
-
Tags : 存储过程
我们凭借多年的网站建设经验,坚持以“帮助中小企业实现网络营销化”为宗旨,累计为4000多家客户提供品质建站服务,得到了客户的一致好评。如果您有网站建设、网站改版、域名注册、主机空间、手机网站建设、网站备案等方面的需求,请立即点击咨询我们或拨打咨询热线: 13761152229,我们会详细为你一一解答你心中的疑难。


客服1