MySQL数据库分支循环结构

MySQL数据库分支循环结构

   分支结构

   1.IF...THEN..分支:单路分支,条件为真执行语句,条件为假不执行语句,同java的 【IF分支】

      语法结构:
      IF  判断条件 THEN
            执行语句
      END IF;

##创建存储过程
CREATE PROCEDURE branchDemo()
BEGIN
    DECLARE i INT;
    SET i = 16;
    IF i > 10 THEN
        SELECT 'i大于10';
    END IF;
END;
CALL branchDemo;

2.IF THEN..ELSE..分支:两路分支,条件为真执行语句1,条件为假执行语句2,同java的【IF..ESLE..分支】

   语法结构:
   IF 判断条件 THEN
         执行语句1
   ELSE 
         执行语句2
   END IF;

##创建存储过程
CREATE PROCEDURE branchDemo()
BEGIN
    DECLARE i INT;
    SET i = 16;
    IF i > 10 THEN
        SELECT 'i大于10';
    ELSE 
        SELECT 'i小于10';
    END IF;
END;
CALL branchDemo;

3.IF...THEN...ELSEIF...分支:多路分支,哪个条件为真,执行对应的语句,同java的【IF..ELASE IF...分支】

语法结构:
IF 判断条件1 THEN
    执行语句1
ELSEIF 判断条件2 THEN
    执行语句2
ELSEIF 判断条件3 THEN
    执行语句3
ELSE
    当上述条件都不满足时,执行,可省略
END IF;

CREATE PROCEDURE branchDemo()
BEGIN
 	DECLARE score INT;
	SET score = 95;
	IF score >= 60 AND score< 70 THEN
		SELECT '及格';
	ELSEIF score >= 70 AND score< 90 THEN
		SELECT '良好';
	ELSEIF score >= 90 THEN
		SELECT '优秀';
	ELSE
		SELECT '不及格';
	END IF;
END;
CALL branchDemo;

4.CASE...WHEN..分支:多路分支,当判断值相等时建议使用,同java的【SWITCH..CASE..分支】

语法结构:
CASE 变量名
WHEN 值1 THEN
      执行语句1
WHEN 值2 THEN
      执行语句2
WHEN 值3 THEN
      执行语句3
ELSE
     执行语句
END CASE;
case when常用作查询条件,不用做分支结构来使用,感兴趣的朋友们可以去单独查一下它的用法,在这就先不介绍了。

循环结构

1.WHILE...DO..循环

CREATE PROCEDURE loopDemo()
BEGIN

##  while..do 循环

##  WHILE 循环条件 DO
##      循环体
##  END WHILE;

    DECLARE i, sum INT;
    SET i = 1, sum = 0;

    WHILE i <= 10 DO
        SET sum = sum + i;
        SET i = i + 1;
    END WHILE;
    SELECT sum;

END;
CALL loopDemo

2.REPEAT..UNTIL..循环

CREATE PROCEDURE loopDemo()
BEGIN

    ## repeat...util 循环

    ## REPEAT
    ##    循环体
    ## UNTIL 循环条件
    ## END REPEAT
    
    DECLARE i, sum INT;
    SET i = 1, sum = 0;
    REPEAT
        SET sum = sum + i;
        SET i = i + 1;
    UNTIL i > 10
    END REPEAT;

END;

CALL loopDemo

3.LOOP循环

CREATE PROCEDURE loopDemo()
BEGIN

## loop
## 循环名称:LOOP
## IF 结束循环条件 THEN
## LEAVE 循环名称
## 循环体
## END LOOP;

    DECLARE i,sum INT;
    SET i = 1, sum = 0;
    sumLoop:LOOP
        IF i  > 10 THEN
            LEAVE sumLoop;
        END IF;
        SET sum = sum + i;
        SET  i = i + 1;
    END LOOP;
    SELECT sum;

END;

 

发布了29 篇原创文章 · 获赞 5 · 访问量 1万+
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 大白 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览