百分百源码网-让建站变得如此简单! 登录 注册 签到领金币!

主页 | 如何升级VIP | TAG标签

当前位置: 主页>网站教程>数据库> mysql流程控制语句包含哪些?
分享文章到:

mysql流程控制语句包含哪些?

发布时间:12/01 来源:未知 浏览: 关键词:

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)
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
打赏

打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

百分百源码网 建议打赏1~10元,土豪随意,感谢您的阅读!

共有150人阅读,期待你的评论!发表评论
昵称: 网址: 验证码: 点击我更换图片
最新评论

本文标签

广告赞助

能出一分力是一分吧!

订阅获得更多模板

本文标签

广告赞助

订阅获得更多模板