mysql查询流程控制语句_mysql流程控制语句包括哪些?

mysql中的流程控制语句包括有:IF语句、CASE语句、LOOP语句、WHILE语句、REPEAT语句、LEAVE语句和ITERATE语句,它们都可以来控制程序的流程。

b06f5c490c9996bcf08ba4708ebff9c5.png

在存储过程和自定义函数中可以使用流程控制语句来控制程序的流程。MySQL 中流程控制语句有::IF语句、CASE语句、LOOP语句、WHILE语句、REPEAT语句、LEAVE语句和ITERATE语句,它们可以进行流程控制。(推荐教程:mysql视频教程)

1、IF语句

IF语句用来进行条件判断,根据不同的条件执行不同的操作。该语句在执行时首先判断IF后的条件是否为真,则执行THEN后的语句,如果为假则继续判断IF语句直到为真为止,当以上都不满足时则执行ELSE语句后的内容。IF语句表示形式如下:IF condition THEN

...

ELSE condition THEN

...

ELSE

...

END IF

示例:使用IF语句用来进行条件判断。-- 创建存储过程

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;

-- 调用存储过程

CALL example_if(2);注意:MySQL 中的 IF( ) 函数不同于这里的 IF 语句。

2、CASE语句

CASE语句为多分支语句结构,该语句首先从WHEN后的VALUE中查找与CASE后的VALUE相等的值,如果查找到则执行该分支的内容,否则执行ELSE后的内容。CASE语句表示形式如下:CASE value

WHEN value THEN ...

WHEN value THEN ...

ELSE ...

END CASE

CASE语句另一种语法表示形式如下:CASE

WHEN value THEN ...

WHEN value THEN ...

ELSE ...

END CASE

示例:使用CASE语句用来进行条件判断。-- 创建存储过程

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;

-- 调用存储过程

CALL example_case(5);

3、WHILE循环语句

WHILE循环语句执行时首先判断condition条件是否为真,如果是则执行循环体,否则退出循环。该语法表示形式如下:WHILE condition DO

...

END WHILE;

示例:使用WHILE循环语句执行求前100的和。-- 创建存储过程

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;

-- 调用存储过程

CALL example_while(@sum);

SELECT @sum;

4、LOOP循环语句

LOOP循环没有内置的循环条件,但可以通过LEAVE语句退出循环。LOOP语句表示形式如下:LOOP

...

END LOOP

LOOP语句允许某特定语句或语句群的重复执行,实现一个简单的循环构造,在循环内的语句一直重复直至循环被退出,退出循环应用LEAVE语句。

LEAVE语句经常和BEGIN...END或者循环一起使用,其表示形式如下:LEAVE label

label是语句中标注的名字,这个名字是自定义的。

示例:使用LOOP循环语句求前100的和。-- 创建存储过程

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

-- 退出LOOP循环

LEAVE loop_label;

END IF;

END LOOP;

SET sum = s;

END;

-- 调用存储过程

CALL example_loop(@sum);

SELECT @sum;

5、REPEAT循环语句

REPEAT循环语句先执行一次循环体,之后判断condition条件是否为真,则退出循环,否则继续执行循环。REPEAT语句表示形式如下:REPEAT

...

UNTIL condition

END REPEAT

示例:使用REPEAT循环语句求前100的和。-- 创建存储过程

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(@sum);

SELECT @sum;

6、ITERATE语句

ITERATE语句可以出现在LOOP、REPEAT和WHILE语句内,其意为“再次循环”。语句格式如下:ITERATE label

该语句的格式与LEAVE大同小异,区别在于:LEAVE语句是离开一个循环,而ITERATE语句是重新开始一个循环。

示例:求10以内奇数值的和。-- 创建存储过程

CREATE PROCEDURE example_iterate(OUT sum INT)

BEGIN

DECLARE i INT DEFAULT 0;

DECLARE s INT DEFAULT 0;

loop_label:LOOP

SET i = i+1;

IF i > 10 THEN

-- 退出整个循环

LEAVE loop_label;

END IF;

IF (i mod 2) THEN

SET s = s+i;

ELSE

-- 退出本次循环,继续下一个循环

ITERATE loop_label;

END IF;

END LOOP;

SET sum = s;

END;

-- 调用存储过程

CALL example_iterate(@sum);

SELECT @sum

更多编程相关知识,请访问:编程学习网站!!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值