mysql基礎四 存儲過程

1、存儲過程:變量的聲明和賦值。
delimiter $mysql

create procedure p1()sql

beginide

declare age int default 18;

    set age :=age+20;或者   set age =age+20

select age from dual;

end$3d

調用存儲過程:call p1(); 其結果是以下:code

mysql基礎四 存儲過程

2、存儲過程:if 控制語句。
delimiter $
create procedure p2()
beginblog

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

end$
調用存儲過程:call p2(); 其結果是以下:
mysql基礎四 存儲過程it

3、存儲過程:輸入參數。
計算一個矩形的面積,並判斷是胖fat? 瘦then? 仍是方square?
delimiter $
create procedure p3(w int ,h int)
begin
select concat('area:',w*h);class

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

end$基礎

4、存儲過程: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(); 其結果是以下:
mysql基礎四 存儲過程

5、存儲過程:輸出參數:
求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; 其結果是以下:

mysql基礎四 存儲過程

mysql基礎四 存儲過程

6、存儲過程:輸入輸出參數:
delimiter $
create procedure p9(inout age int)
begin
set age =age+20;
end $

調用存儲過程:set @currentage=18; call p9(@currentage) ;select @currentage; 其結果是以下:

mysql基礎四 存儲過程

7、存儲過程:case控制語句:
delimiter $
create procedure p10()
begin

declare pos int default 0;

set pos=floor(4*rand()) ;

case pos
when 1 then select 'haha';
when 2 then select 'hehe';
else select 'heihei';
end case;

end $

8、存儲過程: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$

9、調用存儲過程 call:

call procedure_Name();

相關文章
相關標籤/搜索