加入收藏 | 设为首页 | 会员中心 | 我要投稿 源码网 (https://www.900php.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MySql教程 > 正文

mysql流程控制语句是什么

发布时间:2022-02-19 14:36:25 所属栏目:MySql教程 来源:互联网
导读:这篇文章将为大家详细讲解有关mysql流程控制语句是什么,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。 mysql中的流程控制语句包括有:IF语句、CASE语句、LOOP语句、WHILE语句、REPEAT语句、LEAVE语句和ITERATE语句
       这篇文章将为大家详细讲解有关mysql流程控制语句是什么,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。
 
       mysql中的流程控制语句包括有:IF语句、CASE语句、LOOP语句、WHILE语句、REPEAT语句、LEAVE语句和ITERATE语句,它们都可以来控制程序的流程。
 
       在存储过程和自定义函数中可以使用流程控制语句来控制程序的流程。MySQL 中流程控制语句有::IF语句、CASE语句、LOOP语句、WHILE语句、REPEAT语句、LEAVE语句和ITERATE语句,它们可以进行流程控制。
 
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
关于mysql流程控制语句是什么就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

(编辑:源码网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读