一、条件语句
以下是一个示例的 SQL 条件语句,它使用了 IF
、ELSEIF
和 ELSE
结构:
delimiter //
CREATE PROCEDURE proc_if ()
BEGIN
DECLARE i INT DEFAULT 0;
IF i = 1 THEN
SELECT 1;
ELSEIF i = 2 THEN
SELECT 2;
ELSE
SELECT 7;
END IF;
END //
delimiter ;
在这个过程中,根据变量 i
的值来选择不同的结果。如果 i
等于 1,则选择 1;如果 i
等于 2,则选择 2;否则,选择 7。
二、循环语句
1. WHILE
循环
以下是一个使用 WHILE
循环的示例:
delimiter //
CREATE PROCEDURE proc_while ()
BEGIN
DECLARE num INT;
SET num = 0;
WHILE num < 10 DO
SELECT num;
SET num = num + 1;
END WHILE;
END //
delimiter ;
在这个过程中,WHILE
循环用于重复执行一组 SQL 语句,直到 num
不小于 10 为止。
2. REPEAT
循环
以下是一个使用 REPEAT
循环的示例:
delimiter //
CREATE PROCEDURE proc_repeat ()
BEGIN
DECLARE i INT;
SET i = 0;
REPEAT
SELECT i;
SET i = i + 1;
UNTIL i >= 5
END REPEAT;
END //
delimiter ;
在这个过程中,REPEAT
循环会重复执行 SQL 语句,直到 UNTIL
条件为真时停止循环。
3. LOOP
循环
以下是一个使用 LOOP
循环的示例:
delimiter //
CREATE PROCEDURE proc_loop ()
BEGIN
DECLARE i INT DEFAULT 0;
loop_label: LOOP
SET i = i + 1;
IF i < 8 THEN
ITERATE loop_label;
END IF;
IF i >= 10 THEN
LEAVE loop_label;
END IF;
SELECT i;
END LOOP loop_label;
END //
delimiter ;
在这个过程中,LOOP
循环用于重复执行一组 SQL 语句。使用 ITERATE
语句可以跳过循环的当前迭代并继续下一个迭代,而使用 LEAVE
语句则可以终止循环。