Mysql—存储过程

news2024/11/27 21:42:54

简介

存储过程就是类似于MySQL触发器,经过事先编写好相应语句,通过编译后存储在数据库上。触发器不需要手动调用即可实现相应SQL功能。MySQL存储过程,需要自己去调用得到相应的结果。

语法

  • 创建存储过程
CREATE DEFINER = CURRENT_USER PROCEDURE demo()
BEGIN
...编写具体sql语句
END

demo()中,可以添加输入IN、输出OUT,如:

CREATE DEFINER = CURRENT_USER PROCEDURE demo(IN name VARCHAR(20), OUT age int)
BEGIN
...编写具体sql语句
END

这里以Navicat作为演示
在这里插入图片描述
DEFINER = CURRENT_USER 是表示在当前用户创建的存储过程,如果登录名是root,那么这里就是DEFINER=root@%。编写完,保存后就会显示
在这里插入图片描述

  • 调用存储过程
CALL 存储过程名称(存储过程需要参数就传入参数)

在Navicat中可以直接点击运行,可以得到相应结果
在这里插入图片描述
如果是有参数的存储过程,会弹出相应的参数让填写。
在命令行中:
在这里插入图片描述

简单的案例

  1. 查询所有用户的薪资
    在这里插入图片描述
    运行结果:
    在这里插入图片描述

  2. 根据用户名称,查询该用户的薪资

创建存储过程
在这里插入图片描述
在这里插入图片描述
这里需要注意的是:填写完相关参数后,点击完成后,直接保存该存储过程,是无法编译通过的
在这里插入图片描述
这里需要对varchar指定位数
在这里插入图片描述
点击运行,输入参数值
在这里插入图片描述
在这里插入图片描述
这里可以看到结果1为想要查询的结果。这时点开结果2看看,可以发现这个带有@的值就是我们定义的OUT 对应的值,但是为什么为空呢?
在这里插入图片描述
查看我们创建的这个存储过程,可以看到IN 参数有值,但是OUT 参数usalary 还没有值,也就是变量@usalary 目前还是为空的(猜测在Navicat中直接点击运行时,会在输入IN时,也默认给OUT 传入的是null,如果不传,@usalary就是null),既然我们想要输出usalary 含有值,那么就在存储过程sql语句中,将查询的salary 结果赋值给它。

给变量赋值,可以使用into 进行
在这里插入图片描述
再次运行
在这里插入图片描述
在这里插入图片描述
可以看到变量@usalary 已经成功赋值成功。

那么我们进行变量的赋值,有什么用呢?
用户的自定义变量,在mysql中的保存时间为该次mysql的会话连接,在这个会话内,可以一直调用该变量,不需要再去执行存储过程。

在这里插入图片描述
在这里插入图片描述

MySQL的存储过程就先讲到这,后面有需要再更新上来。

可以看看我的个人博客:
网站:https://www.fuzm.wang / https://liwangc.gitee.io
—————————————————————————

作为初学者,很多知识都没有掌握,见谅,如有错误请指出,以期进步,感谢!。后续有新的学习,继续补充上来。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/620675.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

git---->团队开发神器,一篇文章直接掌握

git---->团队开发神器,一篇文章直接掌握 一 学习git的原因概念版本的概念1 版本控制软件的基础功能2 集中式版本控制软件3 分布式版本控制 二 git的安装三 GitHub Desktop的使用四 团队操作五 中央服务器--github从github上下载文件到本地仓库传输文件 六 国内中…

chatgpt赋能python:Python如何实现自增

Python如何实现自增 在Python编程中,自增是一种非常常用的操作,它可以让我们在循环、计数等场景中更加方便地进行操作。实际上,在Python中,实现自增非常简单,本文将介绍Python中常用的自增操作,并分享自增…

时间复杂度 空间复杂度

概览 时间复杂度与空间复杂度的作用是在衡量一个算法的优劣性,以及在二者之间进行权衡,寻找二者的平衡点。 时间复杂度是指执行算法所需时间的增长率,而空间复杂度则是指执行算法所需存储空间的增长率。 高时间复杂度的算法可能需要在短时间…

LayUI前框框架普及版

LayUI 一、课程目标 1. 【了解】LayUI框架 2. 【理解】LayUI基础使用 3. 【掌握】LayUI页面元素 4. 【掌握】LayUI内置模块二、LayUI基本使用 2.1 概念 layui(谐音:类UI) 是一款采用自身模块规范编写的前端 UI 框架&#xff0…

Nginx+Tomcat 负载均衡、动静分离

目录 一、Nginx代理服务器概念 1.正向代理 2.反向代理 二、动静分离 三、负载均衡 四、Nginx七层代理实验 1.部署Nginx服务 2. 部署Tomcat服务 2.1在192.168.88.50 虚拟机上部署双实例 2.2在192.168.88.60 上部署Tomcat服务器3 3.动静分离配置 3.1Tomcat1 server 配…

RecyclerView的回收缓存均由内部类Recycler完成

1. RecyclerView的三级缓存 通常在RecyclerView中存在着四级缓存,从低到高分别为: 可直接重复使用的临时缓存(mAttachedScrap/mChangedScrap) mAttachedScrap中缓存的是屏幕中可见范围的ViewHoldermChangedScrap只能在预布局状态…

Material—— 常用材质节点

目录 Coordinates Absolute World Position Actor Position Object Position Utility SphereMask Coordinates 表示坐标类的节点; Absolute World Position 别名为WorldPosition,此节点输出当前像素在世界空间内的位置;常用于查找相机到…

作为过来人:有什么话想对当年高考前的自己说

目录 引言千人千面-有什么话想对当年高考前的自己说怀念高中,数学太难多考一分,人生就会不一样一定要勇敢,不止高考别把高考不当回事6的我没话说想到啥就去做别选**大学/专业强烈想出名的拖鞋哥英语全选C,理综要细心会的全做对当时…

Spring - 注解开发

文章目录 Spring的注解开发一、Bean 基本注解开发1.1 Component Bean的配置1.2 其他注解配置Bean1.3 Component 衍生注解 二、Bean依赖注入注解开发2.1 Value2.2 Autowired2.3 Qualifier2.4 Resource 三、非自定义注解开发3.1 无参非自定义注解开发3.2 有参非自定义注解开发 四…

Domino 14新内核

大家好,才是真的好。 还记得去年,我们不断跟进而放出的Notes/Domino产品路线图吗?是的,HCL正在按照产品路线图稳步推进,而很多人提出的idea,也逐步加入到产品中,等会我们也会聊到。 我最喜欢这…

MySQL安装-Linux版

MySQL-Linux版安装 1、准备一台Linux服务器 云服务器或者虚拟机都可以; Linux的版本为 CentOS7; 2、 下载Linux版MySQL安装包 下载地址 3、上传MySQL安装包 使用FinalShell软件上传即可! 4、 创建目录,并解压 mkdir mysqltar -xvf my…

【Web服务器】Nginx网站服务

文章目录 一、Nginx 概述1.什么是 Nginx2.Nginx 的特点3.Nginx 应用场景 二、Nginx 服务基础1.编译安装 Nginx 服务1.1 布置环境1.2 安装依赖包1.3 创建运行用户、组1.4 编译安装 2.Nginx 的运行控制2.1 检查配置文件2.2 启动、停止 Nginx2.3 日志分割以及升级 Nginx 服务2.4 添…

调用腾讯API实现图片滤镜

目录 1. 作者介绍2. 图像滤波介绍3. 实验过程及结果(附完整代码)3.1 准备工作3.2 实验代码3.3 实验结果 1. 作者介绍 班梦威,男,西安工程大学电子信息学院,2022级研究生 研究方向:模式识别与人工智能 电子…

企业如何有效制定企业信息化发展规划?(附信息化模板)

如何有效制定企业信息化发展规划?企业信息化发展规划是一个宏大而又复杂的命题,这篇来掰开揉碎讲一下企业应该如何有效制定信息化发展规划。 这里不给大家灌鸡汤,也不给大家画大饼,就说些实在的。 如果你想找经验方法&#xff0…

Lambda表达式与函数式编程

文章目录 函数式编程——Stream流概述为什么学?函数式编程思想 Lambda表达式概述Lambda表达式的前身省略规则 Stream流概述案例数据准备创建流中间操作终结操作reduce归并注意事项 Optional概述创建对象安全消费值获取值安全获取值过滤数据转换 函数式接口常用的默认方法 方法…

APPSCAN扫描https协议的网站证书安装过程(Googel浏览器)

【1】首先打开我们的appscan,点击外部设备。 【2】点击记录代理配置 【3】弹出选项后,在记录代理下我们可以看到AppScan SSL证书,这点我们点击导出 【4】这里你选择一个合适的位置,点击保存 【5】保存后的文件是一个zip压缩包,…

GPT4和Claude100k测试使用

总述 程序员们通常使用大量代码,找到一个能够使用Claude100k和GPT4的,长代码优化有希望啦! Liaobots:支持GPT4和Claude100k 不定期供应GPT4 32k,支持最多24000字符请求 大家有时候会觉得GPT4 8k不够用,…

TensorFlow入门知识

个人理解 TensorFlow是集齐了很多深度学习相关的算法的框架,你可以利用他搭建自己的神经网络模型。对于开发者来说,告诉TensorFlow一批特征数据和最终的答案数据,让其通过一个神经网络模型进行训练,最终输出模型。模型将应用于应…

DSP-OMAPL-138 RTOS开发(1)——报错总结

1 git的作用 第一个问题,也不算错误:工程文件会有一个名称会有一个横着的箭头并且文件名前面都有问好,不算错误(算个发现),但是发现将git文件删去即可,如果没有,右击工程文件->选…

用逆向思维学习技术

tip: 作为程序员一定学习编程之道,一定要对代码的编写有追求,不能实现就完事了。我们应该让自己写的代码更加优雅,即使这会费时费力。 推荐:体系化学习Java(Java面试专题) 前言 学习任何知识&#xff0c…