mysql PL(procedure language)流程控制语句

在MySQL中,常见的过程式SQL语句能够用在存储体中。其中包括IF语句、CASE语句、LOOP语句、WHILE语句、ITERATE语句和LEAVE语句,它们能够进行流程控制。java

  • 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出如今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//后面的 “//”和最后的 “//”

这样在当前数据库中究生成了过程控制函数example_if(x)函数

使用流程为oop

CALL example_if(6);

2. CASE语句

列二: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);

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
//

这样在当前数据库中究生成了过程控制函数example_while(x)loop

调用:while

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;

调用:

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
//

调用:

CALL example_repeat(@s);
SELECT @s;
相关文章
相关标签/搜索