mysql存储过程构造sql_mysql存储过程---选择结构

本文介绍了如何在SQL中声明变量并设置默认值,如num类型为int,长度为10。展示了两种变量赋值方法:通过SELECT和SET。同时涵盖了if-else和case-when的选择结构,用以根据num的值设定test变量。涉及了存储过程中的逻辑处理和不同数据类型的操作。
摘要由CSDN通过智能技术生成

声明变量:

关键字DECLARE,下列语句声明变量名为num的int类型的变量长度为10,[ default 0 代表默认值为0,可以不写]。

DECLARE num int(10) [DEFAULT 0];

给变量赋值,使用select 字段名称   into   变量名  from  表名。下列语句意思:查询班级表总记录数赋值给num变量。

select count(class_id) INTO num from class_info;

第二种赋值方式,使用set关键字,下面语句意思为,给num的值为1.

SET num=1;

第一种选择结构:

if-else语法,if 表达式 then 业务逻辑  elseif 表达式 then  业务逻辑  else  业务逻辑  end if  表示if判断结束,下面语句意思:如果num=1则test=1,否则如果 num=2则test=2,否则test=3

IF num = 1

THEN

SET test='1';

ELSEIF num = 2

THEN

SET test='2';

ELSE

SET test='3';

END IF;

完整存储过程

BEGIN

DECLARE num int ;

DECLARE test VARCHAR(50);

select count(class_id) INTO num from class_info;

IF num = 1

THEN

SET test='1';

ELSEIF num = 2

THEN

SET test='2';

ELSE

SET test='3';

END IF;

select CONCAT('结果',test);

END

第二种选择结构:case-when

写法一:

case

when 表达式

then 业务逻辑

when 表达式

then 业务逻辑

when 表达式

then 业务逻辑

......

else

业务逻辑

end case

事例

BEGIN

DECLARE num int DEFAULT 80;

DECLARE test VARCHAR(50);

CASE

WHEN num>=90 AND num<=100

THEN SET test='成绩优秀';

WHEN num>=80 AND num<90

THEN SET test='成绩良好';

WHEN num>=70 AND num<80

THEN SET test='成绩一般';

WHEN num>=60 AND num<=70

THEN SET test='成绩及格';

ELSE

SET test='不及格';

END CASE;

select CONCAT(test);

END

写法二:

BEGIN

DECLARE num int DEFAULT 80;

DECLARE test VARCHAR(50);

CASE 具体值

WHEN 匹配的值,如果匹配上则执行业务逻辑

THEN 业务逻辑;

WHEN 匹配的值,如果匹配上则执行业务逻辑

THEN 业务逻辑;

WHEN 匹配的值,如果匹配上则执行业务逻辑

THEN 业务逻辑;

.......

ELSE

业务逻辑

END CASE;

END

事例:

BEGIN

DECLARE num int DEFAULT 80;

DECLARE test VARCHAR(50);

CASE num

WHEN 100

THEN SET test='成绩优秀';

WHEN 70

THEN SET test='成绩良好';

WHEN 60

THEN SET test='成绩一般';

WHEN 50

THEN SET test='成绩及格';

ELSE

SET test='不及格';

END CASE;

select CONCAT(test);

END

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值