Mysql学习及笔记09--流程控制、分支结构,循环结构

1、分支结构

1、if函数
实现简单双分支

if 条件1 then 语句1
else if 条件2 then 语句2
end if
CREATE FUNCTION test_if(sorce INT) RETURNS CHAR
BEGIN
 IF sorce>=90 AND sorce<=100 THEN RETURN 'A';
 ELSE IF sorce>=40 THEN RETURN 'B';
 ELSE RETURN 'D';
 END IF;
 
END 
select test_if(50)

2、case结构
情况1:类似switch语句,一般用于实现等值判断
情况2:类似多重if语句,一般用于实现区间判断

语法:
情况1:

case 变量|表达式|字段
when 要判断的值1 then 返回的值1或语句1;
when 要判断的值2 then 返回的值2或语句2;
...
else 要返回的值n或语句n;
end case

情况1:

case 变量|表达式|字段
when 要判断的条件1 then 返回的值1或语句1;
when 要判断的条件2 then 返回的值2或语句2;
...
else 要返回的值n或语句n;
end case
DELIMITER $
CREATE PROCEDURE test_case(IN score INT)
BEGIN
	CASE
	WHEN score>=90 AND score<=100 THEN SELECT "A";
	WHEN score>=80 THEN SELECT "B";
	WHEN score>=60 THEN SELECT "C";
	ELSE SELECT "D";
	END CASE;
END $

CALL test_case(90);
2、循环结构

分类:
while、loop、 repeat
循环控制:
iterate 类似于continue,结束本次循环,继续下一次
leave类似于 break,跳出,结束当前所在的循环

1、while语法

【标签:】whiel 循环条件 do
	循环体
end while	【标签:】

2、loop语法

【标签:】loop
	循环体
end loop	【标签:】

可以用来模拟简单的死循环

3、repeat

【标签:】repeat
	循环体;
	until 结束循环的条件
end repeat【标签:】

案例1:批量插入,根据次数插到admin表中多条记录

DELIMITER $
CREATE PROCEDURE pro_while(IN insertCount INT)
BEGIN
	DECLARE i INT DEFAULT 1;
	a:WHILE i<insertCount DO
		INSERT INTO admin (username,pass) VALUES(concat('Rose',i),'666');
		SET i=i+1; 
	END WHILE a;	
END $


CALL pro_while(100);

案例2:批量插入,根据次数插到admin表中多条记录,添加leave语句

DELIMITER $
CREATE PROCEDURE pro_while(IN insertCount INT)
BEGIN
	DECLARE i INT DEFAULT 1;
	a:WHILE i<insertCount DO
		INSERT INTO admin (username,pass) VALUES(concat('Rose',i),'666');
		if i>=20 then leave a;
		SET i=i+1; 
	END WHILE a;	
END $


CALL pro_while(100) $

案例3:批量插入,根据次数插到admin表中多条记录,添加iterate语句

DELIMITER $
CREATE PROCEDURE pro_while(IN insertCount INT)
BEGIN
	DECLARE i INT DEFAULT 0;
	a:WHILE i<insertCount DO
		if mod(i,2)!=0 then iterate a;
		end if
		INSERT INTO admin (username,pass) VALUES(concat('Rose',i),'666');
	END WHILE a;	
END $


CALL pro_while(100) $
3、循环结构总结
名称语法特点位置
while

Label:while 循环条件
do
循环体
end while label

先判断后执行begin end 中
repeat

Label:repeat 循环条件
循环体
until 循环结束条件
end repeat label

先执行后判断begin end 中
loop

Label:loop
循环体
end while label

没有条件的死循环begin end 中
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值