二十七、MySQL基础系列笔记之循环语句的基本使用
MySQL中,常用的循环有三种,while循环、loop循环、repeat循环。
MySQL循环语句的作用与其他编程语言中的循环是一样的,不同的是在于语法。如在PHP语言中,要将一句话同样的话输出100次,毫无疑问就用到循环了,MySQL中也是如此。别忘了SQL也是一种编程。
while循环
语法
[标识名称:] WHILE 条件 DO
SQL语句;
END WHILE [标识名称]
存储过程-案例
# 形式一 无标识
DELIMITER //
DROP PROCEDURE IF EXISTS twhile//
CREATE PROCEDURE twhile(IN c INT)
BEGIN
DECLARE count INT DEFAULT 0;
WHILE count < c DO
SELECT count;
SET count = count + 1;
END WHILE;
END//
CALL twhile(5)//
# 形式二 有标识
DELIMITER //
DROP PROCEDURE IF EXISTS twhile1//
CREATE PROCEDURE twhile1(IN c INT)
BEGIN
DECLARE count INT DEFAULT 0;
tt: WHILE count < c DO
SELECT count;
SET count = count + 1;
END WHILE tt;
END//
函数-案例-使用函数求1-100之和
DELIMITER //
DROP FUNCTION IF EXISTS tfunc//
CREATE FUNCTION tfunc(quantity INT) RETURNS INT(10)
BEGIN
DECLARE count INT DEFAULT 0;
DECLARE num INT DEFAULT 0;
WHILE count < quantity DO
SET count = count+1;
SET num = num + count;
END WHILE;
RETURN num;
END//
SELECT tfunc(100)//
repeat循环
语法
[标识名称:] REPEAT
SQL语句;
UNTIL 结束循环的条件 REPEAT [标识名称]
案例
DELIMITER //
DROP PROCEDURE IF EXISTS demo02//
CREATE PROCEDURE demo02(IN c INT)
BEGIN
DECLARE i INT DEFAULT 0;
REPEAT
SELECT i
SET i =i+1;
UNTIL i >= c END REPEAT;
END//
CALL demo02(3)// # 结果 1 2 3
MySQL中使用leave
与iterate
来控制循环语句的走向,leave终止循环语句的执行,iterate跳过本次循环。相当于PHP中的continue与break。
loop循环
Loop循环没有自带的终止循环的条件,需要自定义条件退出循环。使用loop循环要退出时,loop循环必须声明循环标识名称。
语法
[标识名称:] LOOP
sql语句;
END LOOP [标识名称];
案例
DELIMITER //
DROP PROCEDURE IF EXISTS demo02//
CREATE PROCEDURE demo02(IN c INT)
BEGIN
DECLARE i INT DEFAULT 0;
a: LOOP
SELECT i;
SET i=i+1;
# 当i>=5 时终退出循环
IF i >= c THEN LEAVE a;
END IF;
END LOOP a;
END//
iterate案例--输出偶数
DELIMITER //
DROP PROCEDURE IF EXISTS demo02//
CREATE PROCEDURE demo02(IN c INT)
BEGIN
DECLARE i INT DEFAULT 0;
a: WHILE i < c DO
SET i=i+1;
IF i>c THEN LEAVE a;
ELSEIF MOD(i,2) != 0 THEN ITERATE a;
END IF;
SELECT i;
END WHILE a;
END//
三中循环的特点
while循环:先判断条件后执行语句;
repeat循环:先执行语句后判断条件;
loop循环:无条件的死循环。
2020-11-21
请登录后再评论