暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

第36讲:MySQL存储过程的创建和调用

何先振 2023-11-28
473

以下文章来源于何先振,责编小何


存储过程概述



MySQL5.0开始支持存储过程和函数。


存储过程和函数能够将复杂的SQL逻辑封装一起,应用程序无须关注存储过程和函数内部复杂的SQL逻辑,而只需要简单地调用存储过程和函数。


存储过程的理解:


存储过程是一组预先编译的SQL的封装。关键字:procedure。


执行过程:


存储过程先存储在MySQL服务器上,需要执行的时候,客户端只需要向服务器发出调用存储过程的命令,服务器就会把存储过程中封装的SQL全部执行。


好处:


简化操作,提高SQL语句的重用性,减少开发程序的压力。


减少操作过程中的失误,提高效率。


减少网络传输,客户端不需要将所有SQL语句通过网络发给服务器。


减少了SQL语句暴露在网上的风险,提高了数据安全性。


存储过程和视图、函数的对比:


视图是虚拟表,通常不对底层数据表直接操作,而存储过程可以直接操作底层数据表,能够实现一些复杂的数据处理。


一旦存储过程被创建出来,使用它就像函数一样简单。直接通过存储过程的名字调用。不过函数有返回值,存储过程没有返回值(通过out参数类型做返回值)。


分类:


存储过程的参数类型可以是in、out和inout。根据这点可以分类:


没有参数,无参数无返回


只有in参数类型,有参数无返回


只有out参数类型,无参数有返回


有out也有in的参数类型,有参数有返回


有inout的参数类型,有参数有返回


注意:in、out、inout都可以在一个存储过程中定义多个。



存储过程的创建和调用



创建无参数无返回值的存储过程:


该存储过程查询emp表中的数据。前面的delimiter表示声明结束符号,默认结束符号是;,修改为/,后面又修改回;。





创建成功,调用存储过程就能查到表里的数据。





创建有返回参数的存储过程:





调用存储过程,需要传入变量





查询变量,可获取存储过程返回的值。





创建有参数,没返回值的存储过程:


创建传入员工名字,查看员工工资的存储过程。





调用存储过程,传入员工名字,查工资





查出来的跟员工表一样。





也可以声明变量,传入变量进行调用





创建有返回值,有传入参数的存储过程:


创建存储过程,传入员工名字返回员工的工资








调用存储过程,传入员工名字,通过变量接收。





创建又当参数又当返回值的存储过程:


使用inout的变量创建存储过程,查询员工的领导





调用存储过程,获取员工的领导名字





查看员工表Kochhar,员工编号是101。





查看Greenberg员工的,领导编号也是101。说明存储过程查出来的是正确的。





调试存储过程:


在MySQL中调试存储过程,需要把存储过程中的SQL语句复制出来,逐步调试,比较麻烦。



推荐阅读书籍




点击上方"何先振"关注并选择设为星标
各类IT技术文章不会错过!

文章转载自何先振,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论