当前位置:网站首页>MySQL流程控制之while、repeat、loop循环实例分析
MySQL流程控制之while、repeat、loop循环实例分析
2022-07-29 03:11:00 【亿速云】
MySQL流程控制之while、repeat、loop循环实例分析
今天小编给大家分享一下MySQL流程控制之while、repeat、loop循环实例分析的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。

前言
循环是一段在程序中只出现一次,但可能会连续运行多次的代码。
循环中的代码会运行特定的次数,或者是运行到特定条件成立时结束循环。

循环分类:
while
repeat
loop
循环控制:
leave 类似于 break,跳出,结束当前所在的循环
iterate类似于 continue,继续,结束本次循环,继续下一次
while循环
【标签:】while 循环条件 do循环体;end while【 标签】;
-- 创建测试表create table user (uid int primary_key,username varchar ( 50 ),password varchar ( 50 ));
-- -------存储过程-whiledelimiter $$create procedure proc16_while1(in insertcount int)begindeclare i int default 1;label:while i<=insertcount doinsert into user(uid,username,`password`) values(i,concat('user-',i),'123456');set i=i+1;end while label;end $$delimiter ;call proc16_while(10);存储过程语法是固定的:delimiter $$ create peocedure 循环名(参数)begin 代码 end $$ delimiter;
注意在写循环体的时候,必须要要有定义循环的初识变量,采用declare i int default 默认值
然后就是dlabel:while 判断条件 do循环体 end while label; end && 必须要有
-- -------存储过程-while + leavetruncate table user;delimiter $$create procedure proc16_while2(in insertcount int)begindeclare i int default 1;label:while i<=insertcount doinsert into user(uid,username,`password`) values(i,concat('user-',i),'123456');if i=5 then leave label;end if;set i=i+1;end while label;end $$delimiter ;call proc16_while2(10);如果在内部需要跳出循环的话,采用if 判断 ,但是最后需要end if 结尾
这里的leave就是 跳出循环,相对于break
-- -------存储过程-while+iteratetruncate table user;delimiter $$create procedure proc16_while3(in insertcount int)begindeclare i int default 1;label:while i<=insertcount doset i=i+1;if i=5 then iterate label;end if;insert into user(uid,username,`password`) values(i,concat('user-',i),'123456');end while label;end $$delimiter ;call proc16_while3(10);这里的iterate 相对于continue 遇到就不执行下面的代码
repeat循环
repeat循环体;until 条件表达式end repeat [标签];
-- -------存储过程-循环控制-repeatuse mysql7_procedure;truncate table user;delimiter $$create procedure proc18_repeat(in insertCount int)begindeclare i int default 1;label:repeatinsert into user(uid, username, password) values(i,concat('user-',i),'123456');set i = i + 1;until i > insertCountend repeat label;select '循环结束';end $$delimiter ;call proc18_repeat(100);这个相对于是,无论如何都会执行一次的循环,然后是在内部进行判断,如果满足了就直接跳出
loop循环
loop循环体;if 条件表达式 thenleave [标签];end if;end loop;
-- -------存储过程-循环控制-looptruncate table user;delimiter $$create procedure proc19_loop(in insertCount int)begindeclare i int default 1;label:loopinsert into user(uid, username, password) values(i,concat('user-',i),'123456');set i = i + 1;if i > 5thenleave label;end if;end loop label;select '循环结束';end $$delimiter ;call proc19_loop(10);这个和repeat不同的是,需要执行之后,利用leave 跳出循环,无论是使用哪种都可以达到我们需要的效果,但是在业务中的应用场景,while还是相对比较的多。
以上就是“MySQL流程控制之while、repeat、loop循环实例分析”这篇文章的所有内容,感谢各位的阅读!相信大家阅读完这篇文章都有很大的收获,小编每天都会为大家更新不同的知识,如果还想学习更多的知识,请关注亿速云行业资讯频道。
边栏推荐
- Object转String的几种方法
- Multiline text omission
- MySQL operation database data error: fatal error encoded during command execution
- [freeswitch development practice] unimrcp compilation and installation
- 服务器运行管理制度
- 3D高级渲染器:Artlantis studio 2021.2中文版
- VASP calculation task error: M_ divide:can not subdivide 8 nodes by 6
- C traps and defects Chapter 3 semantic "traps" 3.1 pointers and arrays
- Detailed steps for installing MySQL 8.0 under Linux
- Self study notes on Apache file management -- mapping folders and configuring Apache virtual machines based on single IP and multi domain names
猜你喜欢

Chapter 2 VRP command line

Redis configuration cache expiration listening event trigger

力扣刷题之分数加减运算(每日一题7/27)

MySql的安装配置超详细教程与简单的建库建表方法

单例模式(饿汉式 懒汉式)

What is SOA (Service Oriented Architecture)?

C语言程序设计 | 交换二进制数奇偶位(宏实现)

Unity game special effects

What is eplato cast by Plato farm on elephant swap? Why is there a high premium?

Verilog's time system tasks - $time, $stime, $realtime
随机推荐
C traps and defects Chapter 3 semantic "traps" 3.3 array declaration as parameters
三子棋(玩家+电脑)
Several methods of converting object to string
Typescript learning (I)
Alibaba Sentinel - workflow and principle analysis
增量实时灾备笔记
C and pointer Chapter 3 semantic "trap" 3.5 null pointer is not a string
C traps and defects Chapter 3 semantic "traps" 3.9 integer overflow
2022-07-28 第四小组 修身课 学习笔记(every day)
【C】 Array
centos安装mysql8
MySql的安装配置超详细教程与简单的建库建表方法
A case of gradually analyzing the splitting of classes -- colorful ball collisions
Incremental real-time disaster recovery notes
Tp5.0 applet users do not need to log in and directly obtain the user's mobile number.
Unable to start after idea installation
微信为之疯狂的Glide使用——之生命周期学习
C陷阱与缺陷 第3章 语义“陷阱” 3.1 指针与数组
C traps and defects Chapter 3 semantic "traps" 3.7 evaluation order
HTB-Blocky