mysql流程控制_MySQL--流程控制

流程控制:

1、顺序结构:程序从上往下依次执行

2、分支结构:多条路径选择一条

3、循环结构:在规定范围内重复执行

(一)分支结构:

1:if函数

功能:实现分支流

语法:

if(表达式1,表达式2,表达式3)

执行顺序:

执行表达式1,成立返回表达式2的值,不成立则返回表达式3的值

应用:任何地方

例:if(num>10,'true','false')

/*输入年龄提示年龄阶段*/

create FUNCTION test_if(age int) returns CHAR(16)

begin

IF age>60 AND age<=90 THEN RETURN '老奶奶';

ELSEIF age>30 AND age<=60 THEN RETURN '大姐姐';

ELSEIF age>18 AND age<=30 THEN RETURN '小姐姐';

ELSEIF age>12 AND age<=18 THEN RETURN '女孩子';

ELSEIF age>0 AND age<=12 THEN RETURN '小女生';

END IF;

END

drop FUNCTION test_if;

select test_if(6)

2:CASE结构

情况1:一般用于等值判断

语法:

CASE 变量|表达式|字段

WHEN 要判断的值 THEN 返回的值1或语句1;

WHEN 要判断的值 THEN 返回的值2或语句2;

……

ELSE 要返回的值n或语句n;

END CASE

情况2:多重if语句,区间判断

语法:

CASE 变量|表达式|字段

WHEN 要判断的条件1 THEN 返回的值1或语句1;

WHEN 要判断的条件2 THEN 返回的值2或语句2;

……

ELSE 要返回的值n或语句n;

END CASE

特点1:

可以作为表达式,嵌套其他语句使用,放在begin end内外都可以

可以作为单独语句使用,只能放在begin end中

特点2:

如果when的值满足,则执行then后面的语句,并结束case

都不满足,则执行else中的值或语句

特点3:

else可以省略,若else省略,且所有when都不满足,则返回null

例2:

/*输入年龄提示年龄阶段*/

delimiter //

create PROCEDURE test_case(in age int)

BEGIN

CASE

WHEN age>60 AND age<=90 THEN select '老奶奶';

WHEN age>30 AND age<=60 THEN select '大姐姐';

WHEN age>18 AND age<=30 THEN select '小姐姐';

WHEN age>12 AND age<=18 THEN select '女孩子';

WHEN age>0 AND age<=12 THEN select '小女生';

END CASE;

END

//

call test_case(18)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值