千家信息网

mysql基础四 存储过程

发表于:2025-01-23 作者:千家信息网编辑
千家信息网最后更新 2025年01月23日,一、存储过程:变量的声明和赋值。delimiter $create procedure p1()begindeclare age int default 18; set age :=age+20
千家信息网最后更新 2025年01月23日mysql基础四 存储过程

一、存储过程:变量的声明和赋值。
delimiter $

create procedure p1()

begin

declare age int default 18;    set age :=age+20;或者   set age =age+20select age from dual;

end$

调用存储过程:call p1(); 其结果是如下:

二、存储过程:if 控制语句。
delimiter $
create procedure p2()
begin

declare age int default 18;if age>=18 then select '已成年' ;else  select '未成年';end if;

end$
调用存储过程:call p2(); 其结果是如下:

三、存储过程:输入参数。
计算一个矩形的面积,并判断是胖fat? 瘦then? 还是方square?
delimiter $
create procedure p3(w int ,h int)
begin
select concat('area:',w*h);

if w > h then  select 'fat';elseif w < h then  select 'then';    else   select 'square';end if;

end$

四、存储过程:while循环

求1到100的和。
delimiter $
create procedure p100()
begin
declare total int default 0;
declare num int default 0;
while num<=100 do

set total=total+num;set num=num+1;

end while;

select total;
end$

调用存储过程:call p100(); 其结果是如下:

五、存储过程:输出参数:
求1到n的和。
delimiter $
create procedure p8(in n int ,out total int)
begin
set total=0;
declare num int default 0;
while num<=n do

set total=total+num;set num=num+1;

end while;

end$

调用存储过程:call p8(100,@sumary); select @sumary; 其结果是如下:

六、存储过程:输入输出参数:
delimiter $
create procedure p9(inout age int)
begin
set age =age+20;
end $

调用存储过程:set @currentage=18; call p9(@currentage) ;select @currentage; 其结果是如下:

七、存储过程:case控制语句:
delimiter $
create procedure p10()
begin

declare pos int default 0;set pos=floor(4*rand()) ;case poswhen 1 then select 'haha';when 2 then select 'hehe';else select 'heihei';end case;

end $

八、存储过程:repeat控制语句:
delimiter $
create procedure p11()
begin

declare i int default 0;declare total int default 0;repeat     set i=i+1;    set total =total +i;until i>=100 end repeat;select total;

end$

九、调用存储过程 call:

call procedure_Name();

0