在MySQL中,常見的過程式SQL語句能夠用在存儲體中。其中包括IF語句、CASE語句、LOOP語句、WHILE語句、ITERATE語句和LEAVE語句,它們能夠進行流程控制。java
列一:數據庫
DELIMITER// 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 //
這樣在當前數據庫中究生成了過程控制函數example_if(x)函數
使用流程爲oop
CALL example_if(6);
列二:code
DELIMITER// 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 //
這樣在當前數據庫中究生成了過程控制函數example_case(x)it
使用:im
CALL example_case(7);
列三:數據
DELIMITER// 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 //
這樣在當前數據庫中究生成了過程控制函數example_while(x)loop
調用:while
CALL example_while(@a); SELECT @s;
列四:
DELIMITER// 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 //
這裏的leave label至關於java中的break;
調用:
CALL example_loop(@s); SELECT @s;
列五:
DELIMITER// 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(@s); SELECT @s;