<>1.定义用户变量(或者赋值)
set @变量名=值
-- 创建自定义用户变量,当当前的用断开连接的时候就会消失 set @value=1;
<>2.查询用户变量值
select @变量
-- 查询定义的数据 select @value;
<>3.在当前的存储过程和函数中使用变量
* 定义变量:
declare 变量名[,变量名2...] 变量类型 [default 默认值]
* 赋值变量:
set 变量名1=变量值1(或者表达式)[ ,变量名2=变量值2(或者表达式)]
* 使用变量:
select 列名[,列名...] into 变量名1[,变量名二...]
<>4.创建更新数据的存储过程
创建表mytest
-- 创建更新的存储过程 DELIMITER // CREATE PROCEDURE updateMyTest(uid INT,newMoney DOUBLE
) BEGIN DECLARE isexists INT DEFAULT 0; -- 定义变量必须在当前的begin中 SELECT COUNT(1) INTO
isexistsFROM mytest WHERE id=uid ; -- 使用查询的(into)方式赋值 IF isexists<>0 THEN --
第一个条件IF newMoney>0 THEN -- 第二个条件 UPDATE mytest SET money=newMoney WHERE id=uid;
SET isexists=1; -- 使用set方式为变量赋值 ELSE SET isexists=-1; END IF; -- 结束第二个条件 END IF;
-- 结束第一个条件 SELECT (CASE isexists WHEN -1 THEN '执行失败' WHEN 0 THEN 'id不存在' ELSE
'执行成功' END)AS '执行结果' ;-- 使用case when then else end 的switch条件 END // DELIMITER ;
测试:CALL updateMyTest(1,10000);
<>5.创建输入成绩返回结果的函数
-- 根据输入的成绩获得成绩的结果 DELIMITER // CREATE FUNCTION getScoreResult(score INT)
RETURNS CHAR(2) BEGIN DECLARE result CHAR(2) DEFAULT ''; IF score>90 THEN SET
result='优'; ELSEIF score>80 THEN SET result='良'; ELSEIF score>70 THEN SET result
='一般'; ELSE SET result='差'; END IF; --结束if条件 RETURN result; END // DELIMITER ;
测试:SELECT getScoreResult(50);
<>6.总结
1.定义用户变量使用set @变量,该变量随着用户连接断开就直接消失
2.赋值都是使用set 变量名=值;一定要加分号
3.使用case 变量 when 值 then … else end ,其中else相当于switch中的default ,一定要加上end结束case语法
4.使用if-elseif-else或者if-else的时候需要在末尾加上end if用来结束if的语法
以上纯属个人见解,如有问题请联系本人!