MySQL之定义变量

1.定义用户变量(或者赋值)

set @变量名=值javascript

-- 建立自定义用户变量,当当前的用断开链接的时候就会消失
set @value=1;

2.查询用户变量值

select @变量java

-- 查询定义的数据
select @value;

3.在当前的存储过程和函数中使用变量

  1. 定义变量:
    declare 变量名[,变量名2...] 变量类型 [default 默认值]
  2. 赋值变量:
    set 变量名1=变量值1(或者表达式)[ ,变量名2=变量值2(或者表达式)]
  3. 使用变量:
    select 列名[,列名...] into 变量名1[,变量名二...]

4.建立更新数据的存储过程

建立表mytest
在这里插入图片描述web

-- 建立更新的存储过程
DELIMITER //
CREATE PROCEDURE updateMyTest(uid INT,newMoney DOUBLE)
BEGIN 
    DECLARE isexists INT DEFAULT 0; -- 定义变量必须在当前的begin中
    SELECT COUNT(1) INTO isexists FROM 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);svg

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 变量名=值;必定要加分号ui

3.使用case 变量 when 值 then … else end ,其中else至关于switch中的default ,必定要加上end结束case语法spa

4.使用if-elseif-else或者if-else的时候须要在末尾加上end if用来结束if的语法code

以上纯属我的看法,若有问题请联系本人!xml