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

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

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

存储过程的传参控制

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

总结

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

想继续深入学习的同学可以继续关注辫儿哥接下来的坑文,不定期无规律看心情咕咕咕佛系更新!个人整理,欢迎批评指导~。
【辫儿哥大白话】到底什么是Mysql存储过程? —— 传参篇_第10张图片

你可能感兴趣的:(辫儿哥大白话,存储过程,Mysql,mysql,数据库,sql)