mysql中leave和iterater的使用

1 leave

1.1 概念

可以用在循环语句内,或者以BEGIN和END包裹起来的程序体内,表示跳出循环或者跳出程序体的操作。
如果你有面向过程的编程语言的使用经验,你可以把LEAVE理解为break。

1.2 语法

leave 标记名

1.3 举例

/*
**举例1:**创建存储过程“leave_begin)",声明INT类型的IN参数num。给BEGIN...END加标记名,
并在BEGIN...END中使用IF语句判断num参数的值。I|
-如果num<=0,则使用LEAVE语句退出BEGIN...END;
-如果num=1,则查询“employees"表的平均新资;
-如果num=2,则查询“employees"表的最低薪资;
-如果num>2,则查询“employees"表的最高薪资。
IF语句结束后查询“employees"表的总人数。
*/
CREATE PROCEDURE leave_begin ( IN num INT ) begin_lable : BEGIN #相当于起个别名
	IF
		num <= 0 THEN
			LEAVE begin_lable;
		
		ELSEIF num = 1 THEN
		SELECT
			avg( salary ) 
		FROM
			employees;
		
		ELSEIF num = 2 THEN
		SELECT
			min( salary ) 
		FROM
			employees;
		
		ELSEIF num > 2 THEN
		SELECT
			max( employees ) 
		FROM
			emploees;
		
	END IF;
END;
CALL leave_begin(2);

2 iterate

2.1 概念

只能用在循环语句(LOOP、REPEAT和WHILE语句)内,表示重新开始循环,将执行顺序转到语句段开头处。
如果你有面向过程的编程语言的使用经验,你可以把ITERATE理解为continue,意思为“再次循环”。

2.2 语法

iterate 标记名

2.3 举例

#举例:定义局部变量num,初始值为0。循环结构中执行num+1操作。
#如果num<10,则继续执行循环;
#如果num>15,则退出循环结构;
CREATE PROCEDURE test_iterate () BEGIN
	DECLARE
		num INT DEFAULT 0;
	while_lable :
	WHILE
		TRUE DO
			
			SET num = num + 1;
		IF
			num < 10 THEN ITERATE while_lable;
		ELSEIF 
			num > 15 THEN LEAVE while_lable;
			
		END IF;
		
	END WHILE;
	SELECT
	num;
END;

CALL test_iterate();
  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值