什么是mysql存储过程_mysql 存储过程

什么是mysql存储过程_mysql 存储过程存储过程 1 什么是存储过程一组可编程函数 是为了满足特定功能的 SQL 语句集存储过程就是具有名字的一段代码 用来完成个特定的功能创建的存储过程保存在数据库的数据字典中 2 为什么要用存储过程将重复性很高的操作 封装到一个存储过程中 简化了对这些 SQL 的调用批量处理统一接口 确保数据安全相对于 Oracle 来说 Mysql 的存储过程相对功能较弱 使用较少 3 存储过程的创建和调用 1 delimiter

存储过程

1.什么是存储过程

一组可编程函数,是为了满足特定功能的SQL语句集

存储过程就是具有名字的一段代码,用来完成个特定的功能

创建的存储过程保存在数据库的数据字典中

2.为什么要用存储过程

将重复性很高的操作,封装到一个存储过程中,简化了对这些SQL的调用

批量处理

统一接口,确保数据安全

相对于Oracle来说,Mysql的存储过程相对功能较弱,使用较少

3.存储过程的创建和调用

1. delimiter$$

他与存储过程无关

delimiter$$ 将标准分隔符 – 分号 (? 更改为 两个 $

将存储过程作为整体,而不是一次解释每条语句

告诉mysql解释器,该段命令已经结束了。默认情况下,delimiter 是分号,在命令行客户端中,如果有一行命令以分号结束,回车后,mysql将会执行该命令。如果不希望这样,就可以 delimiter$$ ,这样只有在 $$出现后,mysql解释器才会执行 这段语句

0b7d92b916ba1074cf21c4ecb8fd6a87.png

2.创建和调用存储过程

# 创建存储过程

CREATE PROCEDURE 名称()

BEGIN

语句

END$$

# 调用存储过程

CALL 名称()

如图:

c3205060580c33e40e1e6bad579c8440.png

右击鼠标 运行已选择的

然后运行CALL show_content() 这句,就会得到执行结果。

将查询窗口关闭,重新打开一个新的查询窗口,可以直接使用 CALL show_content ,即可执行得到结果

4602928fc27416f0a19e4a102537ecba.png

3.查看存储过程

查看所有存储过程: SHOW PROCEDURE STATUS;

查看指定数据库中的存储过程: SHOW PROCEDURE STATUS WHERE DB = ‘publiccms’;

353e1100578f65ae454e2899ccd77f05.png

查看指定存储过程源码 : SHOW CREATE PROCEDURE show_emp;

删除指定存储过程: DROP PROCEDURE show_emp;

4.存储过程变量

delimiter $$

CREATE PROCEDURE test()

BEGIN

— 声明变量,默认为空

DECLARE res VARCHAR(255) DEFAULT ”;

DELETE x,y int DEFAULT 0 — 声明两个变量,类型为int ,默认为 0

— 赋值 set 方式

set x = 3;

set y = 4;

DECLARE avgRes DOUBLE DEFAULT 0;

— 另一种赋值方式 into 方式

select avg(salary) into avgRes from emp

end$$

— 什么的变量,如 x,y等,只能在 begin end 之间有效

5.存储过程参数传递

in

— 根据传入的名称,获取对应的信息

delimiter $$

create PROCEDURE getName(in name VARCHAR(255))

BEGIN

SELECT * FROM emp where ename = name;

end$$

delimiter ;

CALL getName(‘鲁班’)

0d9c43d8e4e20025a37f795dc48359de.png

out

— 传入姓名,得出薪水

delimiter $$

create procedure getSalary(in name varchar(255),out money int)

BEGIN

select salary into money from emp where ename = name;

end$$

delimiter ;

CALL getSalary(‘李白’,@s) — @s 代表返回的数

select @s; — 也可以写为 select @s from DUAL

— DUAL 是一个虚拟的表

e8781f8371867a96a27a27796864d96e.png

inout 既是输入,又是输出

delimiter $$

create procedure test(inout num int,in inc int) — inout ,既是输入,也是输出

BEGIN

set num = num + inc;

end$$

delimiter ;

set @num1 = 20; — @ 代表地址传递

CALL test(@num1, 10);

select @num1;

18c58451313c3023f37bb0ee087076bb.png

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/218142.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月18日 上午7:56
下一篇 2026年3月18日 上午7:57


相关推荐

  • ai修复照片软件是哪个软件_AI照片修复免费版-AI照片修复软件下载v1.1.0安卓版-西西软件下载…「建议收藏」

    ai修复照片软件是哪个软件_AI照片修复免费版-AI照片修复软件下载v1.1.0安卓版-西西软件下载…「建议收藏」AI照片修复软件是一款专业的照片图片修复处理工具,可以帮助用户将旧照片、老照片以及低像素的照片进行修复,软件界面赶紧操作简单,适合没有经验的伙伴修复使用,除此之外,还有各种美化效果,轻松将照片上色、换底、换像素,来西西下载即可使用哦!AI照片修复软件简介:AI照片修复是一款免费的智能AI照片修复处理工具,包括照片破损修复、黑白照片上色、无损放大、模糊照片清晰增强等实用工具。基于先进的AI图像生成技…

    2022年4月18日
    124
  • vue安装axios以及如何使用axios

    vue安装axios以及如何使用axiosvue 安装 axios 以及如何使用 axios

    2026年3月19日
    2
  • Vue js 的生命周期(看了就懂)

    Vue js 的生命周期(看了就懂)用 Vue 框架 熟悉它的生命周期可以让开发更好的进行 首先先看看官网的图 详细的给出了 vue 的生命周期 它可以总共分为 8 个阶段 beforeCreate 创建前 created 创建后 beforeMount 载入前 mounted 载入后 beforeUpdate 更新前 updated 更新后 beforeDestro 销毁前 de

    2026年3月16日
    2
  • 关于学术论文投稿中的 Cover Letter「建议收藏」

    关于学术论文投稿中的 Cover Letter「建议收藏」  学术期刊报道原始研究工作的论文,一般分为需要快速发表的通信、快报类(communication,letter等)和报道系统研究工作的全文类(fullpaper,article)两种形式。投这两种文章,coverletter和论文Introduction的写法是不同的。    对于需要以通讯或快报形式快速发表的工作,可以是初步的研究结果(preliminaryresult),强调的是工…

    2022年5月22日
    52
  • Ubuntu配置maven环境变量[通俗易懂]

    Ubuntu配置maven环境变量[通俗易懂]Ubuntu配置maven环境变量先用SFTP上传解压缩tar-zxfapache-maven-3.8.5-bin.tar.gz重命名文件夹mvapache-maven-3.8.5maven编辑环境变量sudovim/etc/profile我服务器上maven的解压之后的地址就是/usr/local/software/maven,所以下面环境变量配置如此。让环境变量生效source/etc/profile验证maven版本mvn-v

    2022年6月18日
    75
  • Windows安装openClaw龙虾 wsl2 稳定安装版

    Windows安装openClaw龙虾 wsl2 稳定安装版

    2026年3月14日
    3

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号