mysql中的流程控制语句有:1.IF语句,根据不同条件执行不同操作;2.CASE语句,多分支语句结构;3.WHILE循环语句,先判断后执行;4.LOOP循环语句,没有内置的循环条件;5.REPEAT循环语句,先执行后判断;
mysql中的流程控制语句有以下几种
1.IF语句
mysql中IF语句的作用是用于进行条件判断,可以根据不同条件执行不同操作,如何判断条件为真,执行THEN后的语句,条件为假,则继续判断IF语句直到为真为止,不满足条件时,则执行ELSE语句后的内容。
CREATE PROCEDURE example_if (IN x INT)
BEGIN
IF x = 1 THEN
SELECT 1;
ELSEIF x = 2 THEN
SELECT 2;
ELSE
SELECT 3;
END IF;
END;
CALL example_if(2);
2.CASE语句
mysql中CASE语句是一个多分支语句结构,如条件为真,执行分支的内容,条件为假,则执行ELSE后的内容。
CREATE PROCEDURE example_case(IN x INT)
BEGIN
CASE x
WHEN 1 THEN SELECT 1;
WHEN 2 THEN SELECT 2;
ELSE SELECT 3;
END CASE;
END;
CALL example_case(5);
3.WHILE循环语句
mysql中WHILE循环语句是通过判断condition条件是否为真,如条件为真,执行循环体,条件为假,则退出循环。
CREATE PROCEDURE example_while(OUT sum INT)
BEGIN
DECLARE i INT DEFAULT 1;
DECLARE s INT DEFAULT 0;
WHILE i <= 100 DO
SET s = s+i;
SET i = i+1;
END WHILE;
SET sum = s;
END;
CALL example_while(@sum);
SELECT @sum;
4.LOOP循环语句
mysql中LOOP循环是一个没有内置的循环条件的循环语句,可以通过LEAVE语句退出循环。
CREATE PROCEDURE example_loop(OUT sum INT)
BEGIN
DECLARE i INT DEFAULT 1;
DECLARE s INT DEFAULT 0;
loop_label:LOOP
SET s = s+i;
SET i = i+1;
IF i>100 THEN
LEAVE loop_label;
END IF;
END LOOP;
SET sum = s;
END;
CALL example_loop(@sum);
SELECT @sum;
5.REPEAT循环语句
mysql中REPEAT循环是一种先执行后判断的循环语句,是通过先执行一次循环体,在判断condition条件是否为真,若条件为真,继续执行循环,条件为假,则退出循环。
CREATE PROCEDURE example_repeat(OUT sum INT)
BEGIN
DECLARE i INT DEFAULT 1;
DECLARE s INT DEFAULT 0;
REPEAT
SET s = s+i;
SET i = i+1;
UNTIL i > 100
END REPEAT;
SET sum = s;
END;
CALL example_repeat(@sum);
SELECT @sum;