mysql中的流程控制语句包括有:IF语句、CASE语句、LOOP语句、WHILE语句、REPEAT语句、LEAVE语句和ITERATE语句,它们都可以来控制程序的流程。
在存储过程和自定义函数中可以使用流程控制语句来控制程序的流程。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)BEGINIF x = 1 THENSELECT 1;ELSEIF x = 2 THEN SELECT 2;ELSESELECT 3;END IF;END;-- 调用存储过程CALL example_if(2);
登录后复制
注意:MySQL 中的 IF( ) 函数不同于这里的 IF 语句。
2、CASE语句
CASE语句为多分支语句结构,该语句首先从WHEN后的VALUE中查找与CASE后的VALUE相等的值,如果查找到则执行该分支的内容,否则执行ELSE后的内容。CASE语句表示形式如下:
CASE valueWHEN value THEN ...WHEN value THEN ...ELSE ...END CASE
登录后复制
CASE语句另一种语法表示形式如下:
CASEWHEN value THEN ...WHEN value THEN ...ELSE ...END CASE
登录后复制
示例:使用CASE语句用来进行条件判断。
-- 创建存储过程CREATE PROCEDURE example_case(IN x INT)BEGINCASE xWHEN 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)BEGINDECLARE i INT DEFAULT 1;DECLARE s INT DEFAULT 0;WHILE i4、LOOP循环语句
LOOP循环没有内置的循环条件,但可以通过LEAVE语句退出循环。LOOP语句表示形式如下:
LOOP...END LOOP登录后复制
LOOP语句允许某特定语句或语句群的重复执行,实现一个简单的循环构造,在循环内的语句一直重复直至循环被退出,退出循环应用LEAVE语句。
LEAVE语句经常和BEGIN...END或者循环一起使用,其表示形式如下:
LEAVE label登录后复制
label是语句中标注的名字,这个名字是自定义的。
示例:使用LOOP循环语句求前100的和。
-- 创建存储过程CREATE PROCEDURE example_loop(OUT sum INT)BEGINDECLARE i INT DEFAULT 1;DECLARE s INT DEFAULT 0;loop_label:LOOPSET 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 conditionEND REPEAT登录后复制
示例:使用REPEAT循环语句求前100的和。
-- 创建存储过程CREATE PROCEDURE example_repeat(OUT sum INT)BEGINDECLARE i INT DEFAULT 1;DECLARE s INT DEFAULT 0;REPEATSET s = s+i;SET i = i+1;UNTIL i > 100END 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)BEGINDECLARE i INT DEFAULT 0;DECLARE s INT DEFAULT 0;loop_label:LOOPSET i = i+1;IF i > 10 THEN-- 退出整个循环LEAVE loop_label; END IF;IF (i mod 2) THENSET s = s+i;ELSE-- 退出本次循环,继续下一个循环ITERATE loop_label;END IF;END LOOP;SET sum = s;END;-- 调用存储过程CALL example_iterate(@sum);SELECT @sum登录后复制
更多编程相关知识,请访问:编程学习网站!!
以上就是mysql流程控制语句包括哪些?的详细内容,更多请关注【创想鸟】其它相关文章!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。
发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/1739925.html