MySQL存储过程的参数如何使用

MySQL存储过程的参数如何使用

MySQL存储过程参数

MySQL存储过程的参数共有三种:

  • IN

  • OUT

  • INOUT

输入参数

  • 输入参数(IN):在调用存储过程中传递数据给存储过程的参数(在调用的存储过程必须具有实际值的变量 或者 字面值)

细节注意:下面的存储过程创建会报错,他的类型以及类型长度需要和创建表字段的类型和类型长度一致

-- 创建一个存储过程:添加一个员工信息DELIMITER $$CREATE PROCEDURE procedure_test4(IN `p_name` VARCHAR,IN `p_call` VARCHAR)BEGIN  INSERT INTO employees(`name`,`call`)  VALUES(`p_name`,`p_call`);END $$

MySQL存储过程的参数如何使用

正确写法

-- 创建一个存储过程:添加一个员工信息DELIMITER $$CREATE PROCEDURE procedure_test4(IN `p_name` VARCHAR(64),IN `p_call` VARCHAR(64))BEGIN  INSERT INTO employees(`name`,`call`)  VALUES(`p_name`,`p_call`);END $$

MySQL存储过程的参数如何使用

MySQL存储过程的参数如何使用

现在来测试一下是否可以调用存储过程并且添加数据进去

先看一下表原来的数据

MySQL存储过程的参数如何使用

调用一下存储过程

CALL procedure_test4('李四','321321')

MySQL存储过程的参数如何使用

再来看一下结果

MySQL存储过程的参数如何使用

输出参数

  • 输出参数(OUT):将存储过程中产生的数据返回给调用者,相当于Java方法的返回值,但不同的是一个存储过程可以有多个输出参数

例子:

-- 创建一个存储过程:根据id查询出该员工姓名DELIMITER $$CREATE PROCEDURE procedure_test5(IN `p_id` INT(64),OUT `p_name` VARCHAR(64))BEGIN  SELECT `name` INTO `p_name` FROM employees WHERE id=`p_id`;END $$

MySQL存储过程的参数如何使用

创建没问题,接下来调用测试一下

SET @e_name=''CALL procedure_test5('2',@e_name)SELECT @e_name FROM DUAL

MySQL存储过程的参数如何使用

输入输出参数(INOUT)

-- INOUT(输入输出参数)DELIMITER $$CREATE PROCEDURE procedure_test6(INOUT str VARCHAR(64))BEGIN  -- 把你传进来的值作为条件,查询出的结果再重新赋值给 str 返回出去  -- 这里的 str 既当输入参数,也当输出参数  SELECT `name` INTO str FROM employees WHERE id=str;END $$

MySQL存储过程的参数如何使用

创建没问题,接下来测试一下

SET @e_name='2'CALL procedure_test6(@e_name)SELECT @e_name FROM DUAL

MySQL存储过程的参数如何使用

也是没问题的,但在实际开发中 INOUT 建议少用,原因:代码的可读性会变差

到此,关于“MySQL存储过程的参数如何使用”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注亿速云网站,小编会继续努力为大家带来更多实用的文章!

文章标题:MySQL存储过程的参数如何使用,发布者:亿速云,转载请注明出处:https://worktile.com/kb/p/21941

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022年8月31日 下午11:26
下一篇 2022年8月31日 下午11:27

相关推荐

  • 0xc000007b无法启动软件如何解决

    因为有些应用程序在运行时需要安装必须的组件,如果没有安装的话,可能就会在启动时弹出0xc000007b无法启动软件的提示,这时候我们只要为电脑安装他们就可以了,下面一起来看看吧。 0xc000007b无法启动软件怎么办: 方法一: 1、如果我们不知道安装什么组件,那么可以下载安装一个修复软件。【di…

    2022年9月16日
    18500
  • tracert命令怎么使用

    tracert命令的用法: 1、首先点击左下角开始,然后打开“运行”。 2、之后输入代码“cmd”。 3、在打开的窗口中输入“tracert”。 4、该命令是路由器追踪命令,接着继续输入“tracert+需要追踪ip地址”, 在tracert后面加一个空格,并按下回车。 5、最后就会显示追踪路由的全…

    2022年8月31日
    17200
  • cocos2d-LUA逆向中如何解密app资源

    还是以大神apk为例,通过前面分析app解密lua脚本,我们能够解密大神apk的lua脚本,现在我们来解密其资源(配置文件和图片等)。我们以比较重要的配置文件为例,未解密之前: 文件头部也有签名值:fuckyou!。看到这,我们首先就想到是不是也是用xxtea加密的,我们用上面的方法,先xxtea解…

    2022年9月21日
    66300
  • 知识库软件有哪些

    这里整理了国内外较好用的10款知识库软件,适用对象从团队到个人,他们分别是:1、PingCode Wiki;2、Baklib;3、有道云笔记;4、印象笔记;5、RemNote;6、石墨文档;7、Notion;8、语雀;9、幕布;10、Obsidian。具体功能我们将在文章中介绍。 一、团队知识库软件…

    2022年3月18日
    4.3K00
  • MyBatisPlus QueryWrapper多条件查询及修改方法是什么

    gt、ge、lt、le、isNull、isNotNull 大于 > 例: gt(“age”, 18) → age > 18 ge 大于等于 >= 例: ge(“age”, 18) → age &gt…

    2022年9月21日
    99200
  • ae预合成快捷键是什么

    ae预合成快捷键: 答:ae预合成快捷键为:ctrl+shift+c。 当用户需要将两个素菜合成一个的时候,需要选这两个,然后直接合成。 ae预合成快捷键操作方法: 1、首先使用快捷键“ctrl+左键”来选择你要合成的素材,然后右击选“预合成”。 2、进入合成界面之后,可以为其创建一个名称。 3、搞…

    2022年8月29日
    2.1K00
  • 数据库mdf文件怎么打开

    数据库mdf文件打开方法: 1、找到要打开的数据库文件。 2、用sql server进行打开。 3、开启后点击“连接”。 4、进入管理页面。 5、右击数据库选择“附加”功能。 6、进入“附加数据库”。 7、点击“添加”选择要附加的数据库。 8、选中添加数据库点击“确定”。 9、开启后就可看到所有数据…

    2022年9月8日
    80400
  • office包括哪些办公软件

    office包括的办公软件:1、Word,一个文字处理器应用程序,提供了用于创建专业的文档工具;2、Excel,一款电子表格软件,是最流行的个人计算机数据处理软件;3、PowerPoint,是一款演示文稿软件,可以在投影仪或者计算机上进行演示,也可以将演示文稿打印出来;4、Publisher,一款入…

    2022年9月13日
    1.6K00
  • Mybatisplus中的like查询问题怎么解决

    本篇文章“Mybatisplus中的like查询问题怎么解决”主要为您从以下几个方面讲解:上代码、like的四种用法,希望对您有所启发。 Mybatis plus中like查询问题 又谈到了Mybatis plus了,真的很是痛心疾首,在做模糊查询的时候出现了一个问题,版本还是2.0.8,我觉得大问…

    2022年6月29日
    1.1K00
  • SpringBoot怎么进行整合Druid数据源

    1.自定义方式 使用自定义方式整合Druid 1.添加依赖 在pom.xml添加相关依赖 <!–数据库相关–> <dependency> <groupId>org.springframework.boot</groupId> <artifac…

    2022年9月15日
    19100
联系我们
站长微信
站长微信
电话联系

400-800-1024

工作日9:30-21:00在线

分享本页
返回顶部