mysql流程控制语句是什么

60次阅读
没有评论

共计 2601 个字符,预计需要花费 7 分钟才能阅读完成。

自动写代码机器人,免费开通

这篇文章将为大家详细讲解有关 mysql 流程控制语句是什么,丸趣 TV 小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

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
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;
-- 调用存储过程
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;
-- 调用存储过程
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;
-- 调用存储过程
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;
-- 调用存储过程
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;
-- 调用存储过程
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;
-- 调用存储过程
CALL example_iterate(@sum);
SELECT @sum

关于 mysql 流程控制语句是什么就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

向 AI 问一下细节

丸趣 TV 网 – 提供最优质的资源集合!

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-12-18发表,共计2601字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)