MySQL存储过程与函数篇,使用循环语句
MySQL流程控制语句是用来控制语句的执行,构造控制流程的语句有:IF语句,CASE语句,LOOP语句,LEAVE语句、ITERATE语句、REPEAT语句和WHILE语句,本文主要给大家讲解流程控制语句中的循环语句
工具/原料
电脑
MySQL
Navicat等数据库可视化管理软件
LOOP语句
1、用于重复执行某些语句,直到使用LEAVE语句跳出循环语句结构[loop标注]:LOOP 执行语句END LOOP [loop标注]
2、创建存储过程示例CREATE PROCEDURE testloop(OUT outvalue INT(11))BEGIN DECLARE i int(11); SET i = 0; myLoop:LOOP SET i = i+1; IF i > 10 THEN LEAVE myLoop; END IF; END LOOP myLoop; set outvalue = i;END
3、调用存储过程CALL testloop(@out1);SELECT @out1;
ITERATE语句
1、再次循环,将执行顺序转到语句开头处,只能用于LOOP,REPEAT和WHILE语句内。(类似于其他代码语言的continue)语句结构ITERATE [loop标注]
2、创建存储过程示例CREATE PROCEDURE testloop2(OUT outva盟敢势袂lue int(11))BEGIN DECLARE i int(11); SET i = 0; myLoop:LOOP SET i = i+1; IF i < 10 THEN ITERATE myLoop; ELSEIF i > 20 THEN LEAVE myLoop; END IF; SELECT 'i在10到20之间'; END LOOP myLoop; SET outvalue = i;END
3、调用存储过程CALL testloop2();SELECT @out1;
REPEAT语句(先执行再判断)
1、创建一个带条件判断的循环过程,每次语句执行完毕后,会对条件表达式进行判断,如果表达式为真,则结束循环。语句结构[REPEAT标注]:REPEAT 执行语句UNTIL 条件表达式END REPEAT [REPEAT标注]
2、创建存储过程示例CREATE PROCEDURE testRepeat(OUT outvalue i荏鱿胫协nt(11))BEGIN DECLARE i int(11) DEFAULT 0; myRepeat:REPEAT set i = i+2; UNTIL i > 10 END REPEAT myRepeat; SET outvalue = i;END
3、调用存储过程CALL testRepeat(@out1);SELECT @out1;
WHILE语句(先判断再执行)
1、[WHILE标注]:WHILE 条件表达式 DO 执行语句UNTIL 条件表达式END REPEAT [REPEAT标注]
2、创建存储过程示例CREATE PROCEDURE testWhile(OUT outva盟敢势袂lue int(11))BEGIN DECLARE i int(11) DEFAULT 10; myWhile:WHILE i < 10 DO set i = i+2; END WHILE myWhile; SET outvalue = i;END
3、调用存储过程CALL testWhile(@out1);SELECT @out1;