赞
踩
一、存储过程概念
mysql5.0之后的版本支持存储过程,指的就是sql语句层面的代码封装与重用
存储过程就是一段具有名字的代码,用来完成特定的功能
创建的存储过程保存在数据的数据字典中
二、语法
创建:
create procedure 存储过程名(参数列表)#in 给参数传入值,定义的参数就得到值,in 参数名+表中字段的类型
begin #out 返回值 out 参数名+要返回的数据类型
存储操作的语句
end
调用:
call 存储过程名
三、示例
1、创建一个无参无返回值的存储过程(查询所有的记录)
这里有一个问题,语句中分号的冲突,需要修改sql语句结束的标识符 用delimiter
delimiter //
create procedure pro_info()
begin
select * from info;
end// #这里本条存储过程的结束标识就是//了
调用
call pro_info;
2、创建一个有参无返回值的存储过程(查找某个价格范围(20-200)内的图书信息)
sql语句:
select * from books where price between 20 and 200;
存储过程:
delimiter //
create procedure info_pfo1(in price1 float,in price2 float)
begin
select * from books where price between price1 and price2;
end//
调用:有参数时,调用要传入参数
call info_pro1(20,200);
3、创建一个无参数有返回的存储过程(查询平均价格) 采用out 来返回值 out+参数名+参数类型
sql:
select avg(price) as 平均价格 from books;
存储过程:
delimiter //
create procedure pro_info2(out priceAvg float)
begin
select avg(price) into priceAvg FROM books; (into 变量名)
end//
调用:
call pro_info2(@priceAvg); 调用返回值
查看返回值:
select @priceAvg; 查看存储过程的返回值
查看所有的存储过程:
show procedure status;
删除存储过程:
drop procedure pro_info;
or
drop procedure if exists pro_info;
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。