MySQL存储过程之代码块、条件控制、迭代

1,代码块
代码顺序
[code]
1,变量和条件声明
2,Cursor声明
3,Handler声明
4,程序代码
[/code]
可以给代码块加lebel,这样END匹配比较直观,还可以用LEAVE语句来终结代码块:
[code]
[label:] BEGIN
varaiable and condition declarations
cursor declarations
handler declarations

program code
END [label];
[/code]
代码块可以嵌套:
[code]
CREATE PROCEDURE nested_blocks()
BEGIN
DECLARE my_variable varchar(20);
SET my_variable='This value was set in the outer block';
BEGIN
SET my_variable='This value was set in the inner block';
END;
SELECT my_variable, 'Changes in the inner block are visible in the outer block';
END;
[/code]
LEAVE的例子:
[code]
CREATE PROCEDURE nested_blocks()
outer_block: BEGIN
DECLARE l_status int;
SET l_status=1;
inner_block: BEGIN
IF (l_status=1) THEN
LEAVE inner_block;
END IF;
SELECT 'This statement will never be executed';
END inner_block;
SELECT 'End of program';
END outer_block;
[/code]

2,条件控制
IF:
[code]
IF expression THEN commands
[ELSEIF expression THEN commands]
[ELSE commands]
END IF;
[/code]
例子:
[code]
IF (sale_value > 200) THEN
CALL free_shipping(sale_id); /*Free shipping*/
IF (customer_status='PLATINUM') THEN
CALL apply_discount(sale_id,20); /* 20% discount */
ELSEIF (customer_status='GOLD') THEN
CALL apply_discount(sale_id,15); /* 15% discount */
ELSEIF (customer_status='SILVER') THEN
CALL apply_discount(sale_id,10); /* 10% discount */
ELSEIF (customer_status='BRONZE') THEN
CALL apply_discount(sale_id,5); /* 5% discount*/
END IF;
END IF;
[/code]
CASE:
[code]
CASE
WHEN condition THEN
statements
[WHEN condition THEN
statements...]
[ELSE
statements]
END CASE;
[/code]
例子:
[code]
CASE
WHEN (sale_value>200) THEN
CALL free_shipping(sale_id);
CASE customer_status
WHEN 'PLATINUM' THEN
CALL apply_discount(sale_id,20);
WHEN 'GOLD' THEN
CALL apply_discount(sale_id,15);
WHEN 'SILVER' THEN
CALL apply_discount(sale_id,10);
WHEN 'BRONZE' THEN
CALL apply_discount(sale_id,5);
END CASE;
END CASE;
[/code]
CASE与SELECT语句结合的妙用:
[code]
SELECT (CASE WHEN (t.a = 1 AND t.b = 0) THEN t.c ELSE 'N/A' END) AS result FROM test t order by result asc
[/code]

3,迭代
LOOP
[code]
[label:] LOOP
statements
END LOOP [label];
[/code]
REPEAT...UNTIL
[code]
[label:] REPEAT
statements
UNTIL expression
END REPEAT [label]
[/code]
WHILE
[code]
[label:] WHILE expression DO
statements
END WHILE [label]
[/code]
LEAVE语句
[code]
SET i=1;
myloop: LOOP
SET i=i+1;
IF i=10 then
LEAVE myloop;
END IF:
END LOOP myloop;
SELECT 'I can count to 10';
[/code]
ITERATE语句
[code]
SET i=0;
loop1: LOOP
SET i=i+1;
IF i>=10 THEN /*Last number - exit loop*/
LEAVE loop1;
ELSEIF MOD(i, 2)=0 THEN /*Even number - try again*/
ITERATE loop1;
END IF;

SELECT CONCAT(i, " is an odd number");
END LOOP loop1;
[/code]
嵌套循环
[code]
DECLARE i, j INT DEFAULT 1;
outer_loop: LOOP
SET j=1;
inner_loop: LOOP
SELECT concat(i, " times ", j, " is ", i*j);
SET j=j+1;
IF j>12 THEN
LEAVE inner_loop;
END IF;
END LOOP inner_loop;
SET i=i+1;
IF i>12 THEN
LEAVE outer_loop;
END IF;
END LOOP outer_loop;
[/code]
RK3576的ISP和VPSS图像处理能力实测:对比海思方案能做什么? 本文深度评测了RK3576芯片的ISP和VPSS图像处理能力,并与海思方案进行对比。测试显示,RK3576在MIPI接口灵活性、多路视频支持、HDR动态范围和降噪效果等方面表现优异,特别适合智能视觉和安防监控应用。通过实测数据展示了其在低照度、高动态范围等复杂场景下的卓越性能。 阅读详情

相关推荐

SAP成本计划BAPI接口BAPI_COSTACTPLN_POSTPRIMCOST深度解析与实战指南

在SAP ERP系统中,成本计划是财务与控制模块的核心功能,它涉及对企业未来成本支出的预测与规划。其原理是通过结构化数据模型,将成本要素分配到具体的成本对象上,以实现预算编制和成本控制。这一技术的核心价值在于实现成本数据的标准化、自动化处理,从而提升财务流程效率与数据准确性。在应用场景上,成本计划广泛应用于年度预算编制、项目成本预测、系统间数据集成以及历史数据迁移等关键业务环节。本文聚焦于实现上述流程自动化的关键技术——SAP标准接口BAPI_COSTACTPLN_POSTPRIMCOST,并深入探讨其在高

weixin_29657209的博客 350

MySQL存储过程的控制语句~循环语句+迭代语句

#while循环语句 #首先判断条件是否成立,如果成立,则执行循环体#while循环输出100个随机数 drop procedure proc_test create procedure proc_test(in rows int) begin declare test_val double; create table test( id int primary key auto_increment, val varchar(20) ); ...

weixin_68548138的博客 473

5分钟搞懂SCMA:稀疏码多址接入的核心原理与实战应用

本文深入浅出地解析了SCMA(稀疏码多址接入)的核心原理与实战应用。通过对比传统正交多址技术,阐释了SCMA如何通过非正交叠加和稀疏码本设计,实现远超资源单元数的用户接入,从而有效应对5G海量机器通信(mMTC)的挑战。文章还探讨了其在上行海量连接、免授权接入等场景的应用潜力及工程实现中的关键考量。

zeta9的博客 264

mysql存储过程的迭代_MySQL存储过程中的3种循环

在MySQL存储过程的语句中有三个标准的循环方式:WHILE循环,LOOP循环以及REPEAT循环。还有一种非标准的循环方式:GOTO,不过这种循环方式最好别用,很容易引起程序的混乱,在这里就不错具体介绍了。这几个循环语句的格式如下:WHILE……DO……END WHILEREPEAT……UNTIL END REPEATLOOP……END LOOPGOTO。下面首先使用第一种循环编写一个例子。my...

weixin_35997546的博客 511

三维重建之条纹投影结构光(三)——相位展开优化与多频外差实践

本文深入探讨了三维重建中条纹投影结构光技术的核心环节——相位展开优化。针对传统路径跟踪法存在的误差传播与路径依赖问题,重点解析了多频外差法的原理与优势,并通过详细的C++代码实践,展示了如何利用三频外差法实现鲁棒、高精度的相位展开,从而获得连续的绝对相位图,为后续三维点云生成奠定坚实基础。

weixin_29074295的博客 529

【无标题】IP804A参考资料和管脚作用图

3.3V内置led控制内置EEPROM接口,用于哑应用ip804a,可集成为4X N端口PSE稳压器内置支持外部设备。多个系统和IC总线用于从每个IP804A收集PD电源状态,以支持全局电源管理。多个ip804a可以构建一个具有成本效益的PHY级PSE系统以支持PD分类和电源管理,而无需主机。基于LLDP(IEEE标准8023AT-2009的一部分),可以实时维护PSE和PD之间的动态电源管理,以提高电源效率。IP804A是一款用于POE(以太网供电)系统的4端口PSE(电源设备)控制器IC。

2301_78055735的博客 1058

matlab实验2

实验二 循环结构程序设计 实验要求: 为达到理想的实验效果,同学们务必做到: 1.实验前认真准备,要根据实验目的和实验内容,复习好实验中可能要用到的命令,想好编程的思路,做到胸有成竹,提高上机效率。 2.实验过程中积极思考,要深入分析命令、程序的执行结果以及各种屏幕信息的含义、出现的原因并提出解决办法。 3.实验后认真总结,要总结本次实验有哪些收获,还存在哪些问题,并写出实验报告。实验报告应包括实验目的、实验内容、流程图(较大程序)、程序(命令)清单、运行结果以及实验的收获与体会等内容。 实验目的: 掌

qq_43543515的博客 1万+

【Claude】Auto Mode 触发安全分类器拦截的三种错误变体及对应处理 bug报错已解决

深度解析Claude Auto Mode安全分类器拦截的三种变体:内容拒绝、操作中断、累积触发,含完整排查流程与绕过策略。

博客 7582

mysql代码段

1: MySQL端口号查看方法">MySQL端口号查看方法: show variables like ‘port’; 转载于:https://www.cnblogs.com/mrray/archive/2011/05/13/2045506.html

weixin_33701294的博客 270

AI测试干货:让大语言模型稳定输出 JSON 的四种实现方案

用大语言模型做测试用例生成、数据提取时,最头疼的就是让它老老实实返回 JSON。你以为它会给你 `{"name":"张三"}`,结果它来一句"好的,这是生成结果:```json...",或者干脆在 JSON 里加注释,直接把你的 `json.loads()` 干崩溃。 模型本质上是个话痨,天生爱解释。但我们要的是结构化数据,不是聊天记录。我整理了四种实战方案,从最简单的提示词技巧到工程化框架,覆盖了从快速验证到生产环境的各种场景。

blues_C的博客 955

基于STM32设计的消防小车

当前基于STM32单片机设计了一款智能消防小车;当前小车支持烟雾浓度检测、可燃气体检测,环境温度湿度检测、火焰源检测、能支持远程遥控,方便消防员远程操控进行灭火。小车也支持自动消防,在行驶过程中,消防智能小车通过火焰传感器感应火源以检测火焰具体位置,可以利用算法设计进行循迹灭火,该模式下驱动电机水泵喷水,可以有效控制火源的第二次发生,从而完成消防作业。小车本身带了超声波测距模块,红外壁障模块,在自动或者手动控制行驶过程中可以防止碰到障碍物损伤小车。

7376

Mysql系列知识 -- 存储过程

        参考文献 MySQL存储过程之代码块、条件控制、迭代  有demo    

huangrongyou的专栏 112

遥感图像地物覆盖分类,数据集制作-分类模型对比-分类保姆级教程

1.新建shp文件地理坐标系保持和影像一致,面类型2.打开属性表3.添加字段这里分类6类,点击添加值添加添加完毕开始人工选地物类型,制作数据集开始标注,标注的时候可以借助谷歌地图来看标记足够多的样本打开面转栅格工具设置nodata值为15。

热爱分享,热爱记录 2524

Mysql语法一

        参考文献   MySQL存储过程之代码块、条件控制、迭代  有Demo,有实例    

huangrongyou的专栏 102

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

mysql存储过程详解

我们常用的操作数据库语言SQL语句在执行的时候需要要先编译,然后执行,而存储过程(Stored Procedure)是一组为了完成特定功能的SQL语句集,经编译后存储在数据库中,用户通过指定存储过程的名字并给定参数(如果该存储过程带有参数)来调用执行它。 一个存储过程是一个可编程的函数,它在数据库中创建并保存。它可以有SQL语句和一些特殊的控制结构组成。当希望在不同的应用程序或平台上执行相同的函

u012178428的博客 938

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

ef core mysql调用存储过程_ef调用mysql存储过程

VB中调用带参数存储过程的实现(数据库) --- VB做为快速应用开发(RAD)...InformaticaPowerCenter 调用存储过程 1 平台说明 1.1...java调用存储过程示例_计算机软件及应用_IT/计算机_专业资料。java程序调用存储过程示例 新建存储过程 createorreplaceproceduretest_pro ( invalueinvarchar2, out....

weixin_42521731的博客 431

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

mysql 存储函数_MySQL存储过程 (即函数)

SQL的Stored Procedure存储过程,指的其实就是一个函数。既然是函数,那么就会涉及这几个要点:定义函数、使用函数、变量、参数、返回值等。为了方便理解,以下就不再叫它存储过程,而直接叫函数了。在MySQL中,这几个要点的语法如下:定义函数:CREATE PROCEDURE 函数名(参数列表) BEGIN ...具体的SQL语句... END使用函数:CALL 函数名(参数列表);参数...

weixin_28702147的博客 155

MySQL存储过程 (即函数)

参考:mysql存储过程详细教程 SQL的Stored Procedure存储过程,指的其实就是一个函数。既然是函数,那么就会涉及这几个要点:定义函数、使用函数、变量、参数、返回值等。 为了方便理解,以下就不再叫它存储过程,而直接叫函数了。 在MySQL中,这几个要点的语法如下: 定义函数:CREATE PROCEDURE 函数名(参数...

weixin_34234823的博客 95

MySql 存储过程的控制语句(条件语句、循环语句、游标循环)

MySQL 5.0 版本开始支持存储过程。 存储过程(Stored Procedure)是一种在数据库中存储复杂程序,以便外部程序调用的一种数据库对象。 存储过程是为了完成特定功能的SQL语句集,经编译创建并保存在数据库中,用户可通过指定存储过程的名字并给定参数(需要时)来调用执行。

姚鑫国的博客 1133

《MySQL 存储过程编程》-读书笔记

本书结构: 第一部分:存储编程基础   第1章:存储过程程序基础   第2章:MySQL存储编程指南   第3章:语言基础   第4章:语句块   第5章:在存储程序中使用SQL 第一章:MySQL存储程序介绍   存储程序包含存储过程,函数和触发器。正确使用存储程序也有助于加强数据库的安全性和完整性以及改善你的应用程序的性能和易维护性。 1.1 什么是存储程序  ...

weixin_30477797的博客 350

json mysql 字段 默认值_MySQL的循环结构

流程控制结构有三种,顺序结构、分支结构、循环结构。顺序结构:程序从下往下依次执行。分支结构:程序从两条或多条路径中选择一条来执行。循环结构:程序满足一定条件下,重复执行一段代码。本文整理MySQL循环结构相关内容。什么是MySQL的循环结构分类三种:while、loop、repeat循环控制iterate: 类似于java中的continue,继续,即结束当前循环,继续下一次。leave:类似于j...

weixin_39628105的博客 85

【Mysql一本通-13】游标及其例题

是在 MySQL 中对查询结果集进行逐行操作的一种机制。游标允许在 SQL 语句执行结果中逐行处理每一条记录,适用于需要按行处理查询结果的场景。游标通常在存储过程或函数中使用。通过游标,可以在多个记录之间进行迭代处理,例如,执行一些基于每一行的业务逻辑,或者在没有使用游标时无法处理的复杂查询中进行操作。

m0_69378371的博客 1092

存储过程之流程控制语句

条件控制    IF条件:条件为真,执行    CASE条件:匹配到,执行循环控制    WHILE循环:先判断后执行    REPEAT循环:先执行后判断    LOOP循环(死循环)    LEAVE语句(离开)    ITERATE语句:迭代,再次循环    RETURN语句:返回注意:MySQL不支持FOR循环一、条件控制:if语句、case语句1、IF语句IFs...

weixin_34233618的博客 241
上一篇: 《Advanced Rails》译者序
下一篇: MySQL存储程序之Error Handling
hidetobj
博客等级 码龄19年 16粉丝 301原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值