MySQL 存储过程(二)

news2024/10/7 10:22:25

本篇继续介绍MySQL存储过程的相关内容。

目录

一、if语句

二、case

三、循环语句

while

loop

repeat


一、if语句

在存储过程中,可以使用if语句进行条件判断,其语法结构如下:

if 判断语句 then

        逻辑语句.....

elseif 判断语句 then

        逻辑语句.....

elseif ......

else

        逻辑语句

end if;

下面我们通过一个案例,来具体使用一下if语句:
创建一个存储过程p4,接收一个参数score,并返回一个参数result,具体的执行逻辑如下:

                score < 60  返回‘不及格’

                score >= 60 && score < 85 返回 “及格”

                score >= 85 返回“优秀”

存储过程的创建过程具体如下:

二、case

存储过程的case实现了类似流程控制的功能,有点类似于switch,其具体语法如下:

语法一:

 case case_value

        when value1 then 逻辑语句

        when value2 then  逻辑语句

        when...

        else 逻辑语句

 end case;

当when 后面的value 与 case_value的值相等时, 就会执行then后面的逻辑语句  。

语法二:

case

        when 判断语句 then 逻辑语句

        when 判断语句 then 逻辑语句

        when.....

        else 逻辑语句

end case;

 当when后面的判断语句成立时,就会执行后面的逻辑语句。

三、循环语句

在存储过程中,可以使用循环逻辑的语句,具体有三种不同类型的循环语句,我们来了解一下:

while

while是有判断条件的循环语句,只有满足条件,才能执行循环体的SQL,具体语法如下:

while 判断语句 do

        逻辑语句

end while;

下面我们通过while来实现一下从1加到10,具体如下:

接下来我们具体调用一下:

 

可以发现成功获得从1加到10的结果了。

loop

loop是一种比较特殊的循环,需要搭配leave和iterate来使用,其中leave表示退出循环,iterate表示跳过本次循环,进入下一次循环,loop如果没有包含leave会进入死循环,使用loop时需要对当前loop进行标记,具体语法如下:

标记:loop

        逻辑语句

 end loop 标记

如果需要跳过本次循环,执行 

iterate 标记 

如果需要跳出循环,执行

leave 标记 

 下面我们使用loop实现一下从1加到10

将wret的值设为0,接下来我们调用一下w2, 

然后我们再来查看一下变量wret的值 

可以发现,成功算出结果了。

repeat

repeat和while类型,都是具体条件的循环语句,只不过while是在执行循环体的逻辑之前进行判断,而repeat则是在执行逻辑之后,具体语法如下:

repeat

 逻辑语句

 until判断语句

end repeat; 

当满足until后面的判断语句时,跳出循环 。

下面我们再创建一个存储过程,这次使用repeat进行循环,具体如下:

然后我们将变量wret修改为0,然后调用w3,

此时,我们再次查看变量wret的值

可以发现使用repeat也运算成功了。 

 

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

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

相关文章

Vulnhub-DC-2

靶机IP:192.168.20.135 网络有问题的可以看下搭建Vulnhub靶机网络问题(获取不到IP) kaliIP:192.168.20.128 扫描靶机端口及服务版本 发现开放了80和7744端口 并且是wordpress建站 dirsearch扫描目录 访问前端界面&#xff0c;发现存在重定向 在hosts文件中增加192.168.2…

英伟达再创历史,市值超越苹果,跃居全球第二大上市公司

进入2024年&#xff0c;英伟达股价依然突飞猛进。 今天凌晨&#xff0c;英伟达凭借其在AI领域强劲的创新能力和市场势头&#xff0c;达成了历史性的里程碑——市值首次突破3万亿美元&#xff0c;成功超越苹果&#xff0c;成为全球市值第二大上市公司。 排名仅次于微软。 英伟达…

[职场] 项目助理需具备的能力素养有哪些? #笔记#知识分享#经验分享

项目助理需具备的能力素养有哪些&#xff1f; 项目助理是一个关键的职位&#xff0c;他们在项目的执行过程中扮演着重要的角色。为了胜任这个职位&#xff0c;项目助理需要具备一系列的能力素养。以下是项目助理需具备的能力素养的详细介绍。 1. 组织能力&#xff1a;项目助理需…

OpenCV学习(4.4) 平滑图像

1.目的 在本教程中将学习&#xff1a; 用各种低通滤波器模糊图像。对图像应用自定义过滤器&#xff08;二维卷积&#xff09;。 在图像处理中&#xff0c;平滑图像是一种去噪和模糊技术&#xff0c;用于减少图像中的噪声和细节&#xff0c;使得图像看起来更加平滑。平滑处理…

泛型基础及深入

泛型深入 泛型定义&#xff1a; JDK5引入的特性&#xff0c;可以在编译阶段约束操作的数据类型&#xff0c;并进行检查 泛型格式&#xff1a; <数据类型> 注意&#xff1a;泛型只能支持引用数据类型 优势&#xff1a; 统一数据类型&#xff1b; 把运行时期的问题提前到…

AI大模型语料库

版权声明 本文原创作者&#xff1a;谷哥的小弟作者博客地址&#xff1a;http://blog.csdn.net/lfdfhl 语料库概述 语料库&#xff08;Corpus&#xff09;是一个存储了大量真实语言使用实例的集合&#xff0c;这些实例可以是文本、语音、视频等多种形式的语言数据。语料库通常…

精益管理|AIRIOT智慧变电站管理解决方案

随着社会电气化进程的加速&#xff0c;电力需求与日俱增&#xff0c;变电站作为电网的关键节点&#xff0c;其稳定性和智能化管理水平直接关系到整个电力系统的高效运作。传统变电站管理平台难以适应现代电力系统复杂管理需求&#xff0c;存在如下痛点&#xff1a; 数据收集与…

Java集合的迭代操作,Set Map接口以及工具类方法

1、集合元素迭代 1.1 集合元素遍历 集合的遍历&#xff1a;把集合中的每一个元素获取出来 使用for遍历 使用迭代器遍历 Iterator表示迭代器对象&#xff0c;迭代器中拥有一个指针&#xff0c;默认指向第一个元素之前&#xff0c; . boolean hasNext()&#xff1a;判断指针后是…

Go语言升级1.22.0版本VSCode启动调试报 Version of Go is too old for this version of Delve

因为项目中调用了其它同事的服务&#xff0c;该服务同事的Go环境是1.22.0&#xff0c;我本地go环境是Go1.20.6&#xff0c;不得已也升级了go的版本到1.22.0&#xff0c;其实升级很简单&#xff0c;只需要去go官网下载windows环境的zip包&#xff0c;把原来配置的环境变量GOROOT…

AI全自动批量剪辑软件,一天剪辑3000条原创视频不是梦【剪辑软件+全套教程】

创建一个AI全自动批量剪辑软件的简易程序涉及较为复杂的视频处理和机器学习技术&#xff0c;而且由于这是一个相当高级的任务&#xff0c;通常需要大量的代码以及深度学习框架支持。不过&#xff0c;我可以为您提供一个非常基础版本的程序示例&#xff0c;它会用Python的moviep…

$MPC 登录MEXC,加速Partisia Blockchain 生态市场进程

Partisia Blockchain是一个以MPC技术方案为基础&#xff0c;具备可审计特性的隐私Layer1生态&#xff0c;与此同时&#xff0c;该链通过系列创新的系统架构&#xff0c;能够兼顾高迸发、安全、可拓展性以及可互操作特性。基于系列技术特性&#xff0c;Partisia Blockchain正在构…

LeetCode 热题 100 第56.合并区间

思路&#xff1a; class Solution {public int[][] merge(int[][] intervals) {if(intervals.length < 1) return intervals;List<int[]> res new ArrayList<>();Arrays.sort(intervals, (o1,o2) -> o1[0] - o2[0]);for(int[] interval : intervals){if(res…

想通了这4点,你就适合网络安全工作了

大家好&#xff0c;我是橙橙同学&#xff0c;最近一直想着把自己遇到的问题拿出来给大家做些分享&#xff0c;希望想进入安全行业的或者准备进入安全行业的同学少走些弯路。这里写一下近期经常遇到被问的几个问题&#xff1a; 问题 1: 学长好&#xff0c;我是网络安全专业的&a…

Easy 同学:AI 时代将加速计算机专业和程序员职业的分化

一、原贴 2024 年 6 月 5 日 拥有 60多万粉丝的方糖气球&#xff08;ftqq.com&#xff09;博主 、独立开发者&#xff1a;Easy 发表了一篇 AI 对计算机专业和程序员行业影响的新浪博客&#xff0c;看后很有启发&#xff0c;故而将原文摘录于此&#xff1a; 单独开个贴说一下吧…

kafka-集群搭建(在docker中搭建)

文章目录 1、kafka集群搭建1.1、下载镜像文件1.2、创建zookeeper容器并运行1.3、创建3个kafka容器并运行1.3.1、9095端口1.3.2、9096端口1.3.3、9097端口 1.4、重启kafka-eagle1.5、查看 efak1.5.1、查看 brokers1.5.2、查看 zookeeper 1、kafka集群搭建 1.1、下载镜像文件 d…

【显示方案IC-速显微】

最近偶然间接触到“速显微”的显示方案&#xff0c;个人体验了一把感觉还是挺顺手的&#xff0c;虽然手里没有板子没有上手测试一番。 这是他们的官网链接&#xff1a; https://www.thorsianway.com/product/chip 从官网可以看到有两颗个系列的IC已经量产&#xff1a;GC9005和G…

STM32 HAL库USART的接收数据方法实现

目录 概述 1 使用STM32Cube生成项目 1.1 软件版本信息 1.2 配置串口相关参数 1.3 生成工程 2 问题描述 3 解决问题 3.1 修改代码 3.2 编写新的回调函数 4 测试 概述 本文主要介绍STM32 HAL库USART的接收数据方法实现&#xff0c;笔者使用的HAL库为STM32Cube_FW_F1_V1.…

国产工业级实时数据库

项目功能描述 Mars数据库的核心功能在于其能够高效地处理来自工业现场的大量传感器数据。它通过简化的可视化配置&#xff0c;允许用户轻松接入各种传感器&#xff0c;并进行数据记录和逻辑处理。Mars数据库在单机模式下支持高达120万个传感器信号的接入&#xff0c;而其分布式…

先进制造aps专题十一 国内软件/erp行业的现状及对aps行业的启示

看到一个帖子 中国软件行业几乎全军覆没 OSC开源社区 2024-06-03 15:58 广东 刚刚网上冲浪刷到的 网友锐评&#xff1a;都是客户关系型公司。 知名大 V 「Fenng」评论称&#xff1a; 这里所谓的软件行业公司如果立刻倒闭&#xff0c;才能够利好中国整个行业软件生态。有个网…

Navicat+sqlite操作数据

使用navicat操作数据库&#xff08;比如sqlite数据库&#xff09;可以实现与access&#xff08;参考该文&#xff09;一样的操作&#xff0c;可以导入导出excel等格式的文件&#xff0c;如下图所示。 两种方式的sql语句的语法也基本一样。