MySQL存储过程入门

存储过程入门实例
日期:2015-10-13,作者:雨水

概述
以MySQL数据库为例,简单介绍下存储过程的创建,执行和删除。

什么是存储过程
存储过程可以理解为可以保存的一条或者多条SQL语句的集合。

为什么要用存储过程
(1) 能够处理比一般SQL更为复杂的操作,而且便于封装;
(2) 简化对变动的管理,而且更安全;
(3) 存储过程比使用单独的SQL语句要快。
存储过程的编写比基本SQL语句复杂,需要更高的技能和丰富的经验。

存储过程的创建
以在mysql>命令行中为例,如下:
mysql> delimiter //
mysql> create procedure avgprice()
    -> begin
    -> select avg (price) as aprice
    -> from products;
    -> end //
mysql> delimiter ;
第一行是定义//为分隔符,最后一行是回复分号作为分隔符。
注意:创建存储过程前需要先用use命令选择对应的数据库,跟创建表之前是一样的。

存储过程的执行
mysql> call avgprice();
+--------+
| aprice |
+--------+
| 3.0000 |
+--------+
1 row in set (0.00 sec) 

删除存储过程
mysql> drop procedure avgprice;

带参数的存储过程
存储过程有三种类型的参数:IN,OUT和INOUT,分别表示输入参数,输出参数和输入输出参数。这里以出参OUT为例。
mysql> delimiter //
mysql> create procedure avgprice(OUT aprice int)
    -> begin
    -> select avg (price) into aprice
    -> from products;
    -> end //
Query OK, 0 rows affected (0.00 sec)

mysql> delimiter ;
mysql> call avgprice(@aprice);
Query OK, 1 row affected (0.00 sec)

mysql> select @aprice;
+---------+
| @aprice |
+---------+
|       3 |
+---------+
也可以把int类型换成其他的,如decimal等。

以上都是比较简单的存储过程的举例,实际应用的时候都比这复杂得多,还可以包含IF这样的逻辑语句。 这里只是入个门,做培训用,复杂的就不再介绍。

参考资料:
2. <MySQL必知必会>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

gobitan

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值