天天看点

第十四章,使用存储过程

什么是存储过程

迄今为止,使用的大多数SQL语句都是针对一个或者多个表的单条语句,并非所有的操作都是这么简单,经常会有一个完整的操作需要多条语句才能完成.例如:

*  为了处理订单,需要保证有相应库存的物品
* 如果有库存,在下订单的时候就需要减少相应的订单物品数量,并且通知发货
* 如果订单被取消,则需要在库存中加上取消订单的物品数量. 并且取消发货.
* 存储过程简单来说,就是为了以后的使用保存的一条或者多条SQL语句的集合,可以将其视为批文件. 
           

为什么使用存储过程

* 通过把处理封装在容易使用的单元中,简化复杂的操作.
* 提高性能.因为使用存储过程比单独使用SQL语句要快.
* 由于不要求反复建立一系列处理步骤,这保证了数据的完整性.
           

创建存储过程

CREATE PROCEDURE 储存过程名()
BEGIN
	SELECT ...

END;

BEGIN和END语句用来限定存储过程体
           

执行存储过程

CALL 储存过程名();
           

使用参数

CREATE PROCEDURE 储存过程名(
 OUT p1 DECIMAL(8,2),
 OUT p2 DECIMAL(8,2)
)
BEGIN 
	SELECT Min(prod_price)
	INTO p1
	FROM products;
	SELECT Max(prod_price)
	INTO p2
	FROM products;

END;	

OUT		表示输出参数
IN  	表示输入参数
INTO 	赋值输出参数
           
  • 调用带参数的储存过程
    CALL 储存过程名(@pricel,@priceh);
      返回参数用@开始
      输入参数直接赋值
    
      查看返回值
      SELECT @pricel;
      SELECT @priceh;
               

建立智能存储过程

只有在存储过程中包含业务规则和智能处理时他的为例才真正的显现出来 未完待续…