Mysql 存储过程
存储过程
创建
1 | -- DELIMITER是定义sql语句中,让mysql执行语句的的判断符号, |
存储的参数:
- 输入型参数:只允许调用存储的时候传递给存储,并不会返回,用于接受参数
- 输出型参数:只允许调用存储的时候返回,并不会接受传递进去的该位置的参数,用于返回参数,一般传递的都是用户参数
- 输入输出型参数:即可以接受参数,也可以输出参数,不过尽量不要用
用户参数:
1 | -- 新增用户变量则需要通过 select @变量名:=变量值 进行赋值初始化 |
执行
1 | # 即使储存没有参数,也要用小括号包裹 |
查看
1 | -- 数据库中的查询,如果需要包裹,则用` |
修改
1 | -- mysql不支持存储过程内容的修改,但是可以修改存储的名称,涉及存储内容的请删除重建把 |
存储函数
创建
1 | DELIMITER // |
执行
1 | # 即使存储函数没有参数,也要用小括号包裹 |
查看
1 | -- 查看数据库中所有的函数 |
删除
1 | drop function `存储函数名` |
流程控制
条件
if … then … elseif … then … else … end if
1
2
3
4if num > 0 then data = 1;
elseif num>1 then data = 2;
else data = 3 ;
end if;case … when .. then .. else … end case
1
2
3
4
5case num
when 1 then data = 2;
when 2 then data =3;
else data = 4;
end case;
循环
while … do … end while
1
2
3while a<0 do
data = 1;
end while;repeat … until … end repeat
1
2
3repeat
data = 1;
until a<0 end repeat;还有一些其它的,不过暂时没用到