数据库学习笔记和小练习(15)存储过程

存储过程是由过程化SQL语句的书写过程。这个过程经编译和优化后存储在数据库服务器中,因此称它为存储过程,使用时只要调用即可。

(其实就是为了以后使用而保存的一条或多条mysql语句的集合,是没有返回值的函数)

提高了安全性,完整性,性能。

创建:

delimiter //
create procedure getname()
begin
select Sage from student;
end//
delimiter ;
执行存储过程:

call getname();

查看过程创建:

show create procedure getname\G

删除存储过程:

drop procedure getname;

对于带参数的存储过程:

mysql支持

in(传递给存储过程)

out(从存储过程传出)

inout(对存储过程传入和传出)

三种类型的参数。

创建有参数的过程:

create procedure productprice(
out pl decimal(8,2),
out ph decimal(8,2),
out pa decimal(8,2)
)
begin
select min(prod_price)
into p1
from products;
select max(prod_price)
into ph
from products;
select avg(prod_price)
into pa
from products;
end;

调用有参数的过程:

call productprice(
@pricelow,
@pricehigh,
@priceaverage
);

栗子2:

create procedure ordertotal(
in onumber int,
out ototal decimal(8,2)
)
begin
select sum(item_price * quantity)
from orderitems
where order_num = onumber
into ototal;
end;

执行过程:

call ordertotal(20005, @total);

查看:

select @total;


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值