sql存储过程基础知识

0.存储过程介绍:

CREATE PROCEDURE 存储过程名([[IN |OUT |INOUT ] 参数名 数据类形...])
  • IN 输入参数:表示调用者向过程传入值(传入值可以是字面量或变量)
  • OUT 输出参数:表示过程向调用者传出值(可以返回多个值)(传出值只能是变量)
  • INOUT 输入输出参数:既表示调用者向过程传入值,又表示过程向调用者传出值(值只能是变量)

1.声明变量:

数字整型的声明:
DECLARE   v_ins_id    INT;
字符串类型的声明:
DECLARE   v_message    VARCHAR(128) DEFAULT '';
时间类型的声明:
DECLARE v_player_time timestamp DEFAULT NULL;
为变量赋值:
SET v_ins_id=30;

2.判断:

(1)  if   elseif  else   end if ;

# 删除
drop procedure if exists p_jisuan_qi;
# 创建
create procedure p_jisuan_qi(in v_id int,out v_result VARCHAR(30))
begin
    if (v_id > 0) then
        select '大于0' into v_result ;
    elseif (v_id = 0) then
        select '等于0' into v_result ;
    else
        select '小于0' into v_result ;
    end if;
end;

# 调用
call p_jisuan_qi(0,@h);
# 查询
select  @h ;

(2)  case 可以实现比if更为复杂的判断 :

CASE
    WHEN age=20 THEN SET @count1=@count1+1;
    ELSE SET @count2=@count2+1;
END CASE;

如果 age 值为 20,count1 的值加 1,否则 count2 的值加 1。

3.循环

(1) LOOP 循环内容 END LOOP   ;  LOOP 只实现了一个简单的循环,并不进行条件判断。

add_num:LOOP
    SET @count=@count+1;
END LOOP add_num;

该示例循环执行 count 加 1 的操作。因为没有跳出循环的语句,这个循环成了一个死循环。

(2)LEAVE 语句主要用于跳出循环控制。

add_num:LOOP
    SET @count=@count+1;
    IF @count=100 THEN
        LEAVE add_num;
END LOOP add num;

循环执行 count 加 1 的操作。当 count 的值等于 100 时,跳出循环。

(3)ITERATE 是“再次循环”的意思,用来跳出本次循环,直接进入下一次循环。

add_num:LOOP
    SET @count=@count+1;
    IF @count=100 THEN
        LEAVE add_num;
    ELSE IF MOD(@count,3)=0 THEN
        ITERATE add_num;
    SELECT * FROM employee;
END LOOP add_num;

循环执行 count 加 1 的操作,count 值为 100 时结束循环。如果 count 的值能够整除 3,则跳出本次循环,不再执行下面的 SELECT 语句。

(4)WHILE 语句是当满足条件时,执行循环内的语句,否则退出循环。

WHILE @count<100 DO
    SET @count=@count+1;
END WHILE;

循环执行 count 加 1 的操作,count 值小于 100 时执行循环。如果 count 值等于 100 了,则跳出循环。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值