当前位置:   article > 正文

mysql的存储过程:

mysql的存储过程:

mysql的存储过程:

存储过程的概念:

完成特点功能的sql语句的集合。把定义好的sql集合在一个特定的sql的函数当中

每次执行调用函数即可,还可以实现传参的调用

存储过程的语法:

delimiter   $$
#delimiter  开始和结束的语法,$$标志位,可以自定义,不要用汉字,也不要数字开头,不能使用特殊字符开头。
create procedure test1 ()
begin
  select * from info1;
end $$
delimiter;
show procedure status where db='xy102';     #查看xy102库中的存储过程
show procedure status like '%test1%';       #%test1%存储过程的名称
call test1;

存储过程的作用:

执行速度比sql语句执行速度更快,执行效率也更高

客户端可以随时调用发放,也可以随后修改

可以对数据库做任何操作。

存储过程传参:

IN      传入参数,调用者向存储过程传入值
out     输出参数    存储过程向调用者传出值     可以是多个值
inout   输入输出,既可以表示存储过程向调用者传出,也可以表示用户向存储过程传入值。
delimiter   $$
create procedure test2 (in uname char(20))
begin
  select * from info1 where name = uname;
end $$
delimiter;
call test2('user');

传出参数

delimiter $$
create procedure test4 (out num int)
BEGIN
set num=100;
end $$
delimiter;
​
call test4(@num)
select @num;
​
CREATE TABLE info2 (id int(4));
insert into info2 value(@num);

输入和输出参数:

in  #输入
out #输出
inout   #输入输出
delimiter $$
create procedure test9 (inout str varchar(10))
BEGIN
select str;
#在存储过程当中引用变量无需加@
set str=concat(str);
#替换,把字符进行替换
select str;
end $$
delimiter;
​
set @str='蔡依林';
call test13(@str);
UPDATE info1 set high=@str where id = 3;

存储过程的控制语句:

delimiter $$
create procedure test1 (inout num int)
BEGIN
if num >= 10 
THEN
set num=num-5;
else 
set num=num*2;
end if;
end $$
delimiter;
​
set @num=19;
call test1(@num);
UPDATE info1 set id=@num where high=195;
delimiter $$
create procedure test2 (inout score int,out grade varchar(255))
BEGIN
if score between 85 and 100 
THEN
set grade='优秀';
elseif score between 60 and 84
THEN
set grade='及格';
ELSE
set grade='不及格';
end if;
end $$
delimiter;
​
set @score=92;
call test2(@score,@grade);mysql
INSERT into info3 VALUE(1,@score,@grade);

while:
delimiter $$
create procedure test4 (inout result INT)
BEGIN
declare a int; 
declare i int;
set a=result;
set i=1;
while i<=10
DO
set a=a+10;
set i=i+1;
end while;
set result = a;
end $$
delimiter;
​
set @result=110;
call test4(@result);
select @result;
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/酷酷是懒虫/article/detail/890186
推荐阅读
相关标签
  

闽ICP备14008679号