mysql 流程控制语句,mysql PL(procedure language)流程控制语句
在MySQL中,常見的過程式SQL語句可以用在存儲體中。其中包括IF語句、CASE語句、LOOP語句、WHILE語句、ITERATE語句和LEAVE語句,它們可以進行流程控制。
IF語句相當于Java中的if()...else if()...else...
CASE語句相當于Java中的switch()...case A:...break;default...
LOOP語句相當于Java中的while(true){...}
while語句相當于Java中的while(條件){...}
REPEAT語句相當于Java中的do{...}while(條件)
LEAVE語句相當于Java中的 break; 配合LOOP使用
當REPEAT出現(xiàn)在LOOP、REPEAT、WHILE語句中的時,相當于Java中的continue;
1. IF語句
列一:
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
//
注意這里的selimiter//后面的 “//”和最后的 “//”
這樣在當前數(shù)據(jù)庫中究生成了過程控制函數(shù)example_if(x)
使用流程為
CALL example_if(6);
2. CASE語句
列二:
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
//
這樣在當前數(shù)據(jù)庫中究生成了過程控制函數(shù)example_case(x)
使用:
CALL example_case(7);
3. WHILE語句
列三:
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
//
這樣在當前數(shù)據(jù)庫中究生成了過程控制函數(shù)example_while(x)
調(diào)用:
CALL example_while(@a);
SELECT @s;
4. LOOP語句
列四:
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;
調(diào)用:
CALL example_loop(@s);
SELECT @s;
5. REPEAT語句
列五:
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
//
調(diào)用:
CALL example_repeat(@s);
SELECT @s;
總結(jié)
以上是生活随笔為你收集整理的mysql 流程控制语句,mysql PL(procedure language)流程控制语句的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 土木转计算机 但计算机学院不好,土木妹子
- 下一篇: Ruby-Metasploit的核心