一、条件语句
以下是一个示例的 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 语句则可以终止循环。