【辫儿哥大白话】到底什么是Mysql存储过程? —— 传参篇

本文适合对Mysql有基本基础的童鞋食用,配合Mysql手册研究,基础实践效果更佳~
个人整理,心得体会,欢迎讨论指导.

这同志们在执行一些特殊重复性的sql语句的时候啊,需要频繁操作一大段的sql文件进行反复编辑。哥们前一阵就遇到一个某智慧消防设备心跳数据,大概每次操作都需要读取好多固定的sql进行操作,诶亚这就非常的烦人。这时候有人就说,封个公共类,直接用~!但是这使用太频繁了也不是个事儿,好几次sql进进出出磨磨蹭蹭来来回回…(已被和谐),非常耗费数据库资源。那么有没有一种操作,可以针对完成一段特定功能的SQL进行操作,而又集齐的节省资源呢?来来来,辩儿哥带你了解一下Mysql的“语句集”——存储过程。
在这里插入图片描述

存储过程的传参控制

提到”传参“这个概念啊,很多同学嘿嘿一笑~这孙子终于开始要讲点流程上的东西了。没错!咱们越来越开始接近实际的开发逻辑了。让咱们看看今天的需求:编写存储过程,传入uid,返回该用户的uname 需求了解了吧!直接上代码:
首先先讲解在Navicat上的操作,首先依旧是“函数”—>“新建函数”—>“过程”
在这里插入图片描述
使用Navicat操作就方便很多,创建“过程”成功后,可在界面下方看到有参数的配置:
在这里插入图片描述
在参数中设置传入参数为my_uid,传入数据类型为INT
在这里插入图片描述
如此设置即可完成对传入参数的限制,是不是非常的方便(就是懒 )!
这样我们的入参数就设置好了,那么接下来我们定义出参。结合我们的需求和前几章讲过的知识点,出参要求的是输出用户的用户名字,那么我们优先定义一个存储过程uname的出参变量,这里需要在参数中配置,OUT出参参数:
在这里插入图片描述
接着我们在代码块中定义一个变量:
在这里插入图片描述
之后查询users表中的uid值等同于我们传入的my_uid的uname字段,之后查询输出:
在这里插入图片描述
在使用call调用存储过程的时候,单变量传入只需要在括号中写入对应的参数即可,例如:
在这里插入图片描述
这里有一点需要注意:如果不定义出参参数的话,那么传值只需要传递一个值即可。但是如果同时定了入参和出参的情况下,需要使用 @name 的参数对出参进行传递,否则就会报这样的错误:
在这里插入图片描述
提示信息意思为该存储过程需要两个变量,但是只传递了一个值。

总结

本章主要讲解了存储过程中,入参数出参数的配置及使用,需要注意有以下几点:
1,调用存储过程时,OUT参数也需要指定值,但必须是变量,不可以是常亮。
2,如果一个变量既需要作为传入,也需要作为传出,则可以使用INOUT类型参数,但使用的情况不多,不针对该参数进行演示,有兴趣的同学可以作为扩展学习研究。
3,如果不定义出参参数的话,那么传值只需要传递一个值即可。但是如果同时定了入参和出参的情况下,需要使用双参数进行调用。
4,注意设置入参出参定义的数据类型,在使用时要随时留意。

想继续深入学习的同学可以继续关注辫儿哥接下来的坑文,不定期无规律看心情咕咕咕佛系更新!个人整理,欢迎批评指导~。
在这里插入图片描述

  • 4
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值