码迷,mamicode.com
首页 > 其他好文 > 详细

30_存储过程

时间:2015-05-20 18:41:47      阅读:109      评论:0      收藏:0      [点我收藏+]

标签:procedure   create   status   

存储过程:procedure
概念类似于函数,就是把一段代码封装起来,
当要执行这一段代码的时候,可以通过调用该存储过程来实现,
在封装的语句体里面,可以用if/else,case,while等控制结构,
可以进行sql编程

查看现有的存储过程
show procedure status

删除存储过程
drop procedure 存储过程的名字

调用存储过程
call 存储过程名字();

-------------------------------------------------
delimiter $

1.第一个存储过程,体会"封装sql"
create procedure p1()
begin
select * from g;
end$

call p1()$
+------+--------+-------------+
| g_id | g_name | g_inventory |
+------+--------+-------------+
|    1 | 猪     |          20 |
|    2 | 鸭     |          18 |
|    3 | 羊     |          15 |
|    4 | 牛     |          23 |
+------+--------+-------------+



2.第二个存储过程,体会"参数"
create procedure p2(id int)
begin
select * from g where g_id<id;
end$

call p2(3)$
+------+--------+-------------+
| g_id | g_name | g_inventory |
+------+--------+-------------+
|    1 | 猪     |          20 |
|    2 | 鸭     |          18 |
+------+--------+-------------+

3.第三个存储过程,体会"控制结构"
create procedure p3(num int,j char(4))
begin
if j="high" then 
	select * from g where g_inventory>num;
else 
	select * from g where g_inventory<num;
end if;
end$

call p3(20,"high")$
+------+--------+-------------+
| g_id | g_name | g_inventory |
+------+--------+-------------+
|    4 | 牛     |          23 |
+------+--------+-------------+

call p3(20,"low")$
+------+--------+-------------+
| g_id | g_name | g_inventory |
+------+--------+-------------+
|    2 | 鸭     |          18 |
|    3 | 羊     |          15 |
+------+--------+-------------+


4.第四个存储过程,体会"循环"
计算1-n的和:
create procedure p4(n smallint)
begin
declare i int;
declare sum int;
set i=1;
set sum=0;
while i<=n do
	set sum=sum+i;
	set i=i+1;
end while;
select sum;
end$

call p4(100)$
+------+
| sum  |
+------+
| 5050 |
+------+


30_存储过程

标签:procedure   create   status   

原文地址:http://1154179272.blog.51cto.com/10217799/1653271

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!