MySQL的存储过程

存储过程
存储过程也可以看作是一个“加工作坊”,它接收“调用者”传递过来的“原料”( in参数),然后将这些“原料”“加工处理”成“产品”( 存储过程的out参数或inout参数),再把“产品”返回给“调用者”。 
·创建存储过程的语法格式如下。
delimiter $$
create procedure 存储过程名(参数1,参数2,…)
[存储过程选项]
begin
存储过程语句块;
end
$$
delimiter ;

1、参数列表
存储过程有三种类型的参数:in参数、out参数以及inout参数。

in代表输入参数(默认情况下为in参数),表示该参数的值必须由调用程序指定;

out代表输出参数,表示该参数的值经存储过程计算后,将out参数的计算结果返回给调用程序;

inout代表即是输入参数,又是输出参数,表示该参数的值即可以由调用程序指定,又可以将inout参数的计算结果返回给调用程序。

2、存储过程选项
一般为language sql ,还有好几种。在这里就不列举出来了。如果不写存储过程选项的话,使用的是默认的。
language sql 说明存储过程语句块部分是由sql语言的语句组成,也是数据库系统默认的语言。

3、存储过程的调用
调用储过程须使用call关键字,另外还要向存储过程传递in参数、out参数或者inout参数。
例如:使用in参数
DELIMITER &&
CREATE PROCEDURE pro_book ( IN bT INT)
   BEGIN 
     SELECT stuage FROM student where stuid=bT;
   END 
   &&
DELIMITER ;

CALL pro_book(1);


使用out参数

DELIMITER &&
CREATE PROCEDURE pro_book5( OUT max_age INT)
   BEGIN 
     SELECT max_age;
	set max_age=55;
     SELECT max_age;
   END 
   &&
DELIMITER ;

set @max_age=1;

//调用存储过程的时候,并没有将@max_age=1的值传到存储过程里面去。因为存储过程使用的是out类型的参数。

//读者可以自己敲一遍,运行一下,看看结果。然后将存储过程的参数类型改为INOUT max_age INT  试一下,看看结果。

call  pro_book5(@max_age);
select @max_age;

4、查看存储过程的信息
·show procedure status;

·使用MySQL命令“show create procedure 存储过程名;”可以查看指定数据库指定存储过程的详细信息。show create procedure  pro_book;

5、存储过程的好处:

a、存储过程或者函数可以重复使用,可以减少数据库开发人员,尤其是应用程序开发人员的工作量。 
b、一个存储过程在程序在网络中交互时可以替代大堆的T-SQL语句,所以也能降低网络的通信量,提高通信速率。
c、使用存储过程或者函数可以增强数据的安全访问控制。可以设定只有某些数据库用户才具有某些存储过程或者函数的执行权。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值