MySQL-23使用存储过程-必知必会

MySQL5加入了对存储过程的支持。

  • 什么是存储过程

    学习到本章,大多数SQL语句都是针对一个/多个表的单条语句,但是有的操作需要多条语句才能完成。

    存储过程就是为以后的使用而保存的一条/多条SQL语句的集合。

  • 为什么使用存储过程?

    把处理封装在容易使用的单元中,简化复杂的操作;

    集中一起处理会减少出错的可能性,保证了数据的完整性;

    简化对变动的管理,如果表名/列名/业务逻辑等发生变化,只需更改存储在过程的代码,使用人员无需知道

    提高性能

    编写功能更加强大且灵活的代码

  • 执行存储过程

    MySQL称存储过程的执行为调用,语句为CALL,CALL接受存储过程的名字以及需要传递给它的任意参数

    CALL productpricing(@pricelow
    				  @pricehigh
    				  @priceaverage);
    

    执行名为productpricing的存储过程,它计算并返回产品的最低、最高和平均价格

    存储过程可以显示结果也可以不显示

  • 创建存储过程

    CREATE PROCEDURE productpricing(prod_price)#在括号列举接收的数据,也可以不接收数据
    BEGIN
    	SELECT AVG(prod_price) AS priceaverage FROM products;
    	#可以继续添加语句
    END;
    
    CALL roductpricing();
    
  • 删除存储过程

    DROP PROCEDURE roductpricing;
    
  • 使用参数

    以上的代码示例只是简单的存储过程,简单的显示SELECT语句的结果,一般存储过程不显示结果,而是将结果返回指定的变量

    CREATE PROCEDURE productpricing(
    	OUT p1 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;
    
    #之后这样使用,所有的MySQL变量都要以@开始
    CALL productpricing(@pricelow
    				  @pricehigh
    				  @priceaverage);
    
  • 创建值能存储过程

  • 检查存储过程

    使用SHOW CREATE PROCEDURE语句,显示用来创建存储过程的CREATE语句

    SHOW CREATE PROCEDURE productpricing;
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值