MySQL的存储过程
转载请注明出处 😃!
手动反爬:MySQL的存储过程(CREATE PROCEDURE,DELIMITER,IN,OUT,@p)
https://blog.csdn.net/Lyun911/article/details/111688350
注:以下使用 MySQL 演示
1 概述
迄今为止,使用的大多数SQL语句都是针对一个或多个表的单条语句。并非所有操作都这么简单,经常会有一个完整的操作需要多条语句才能完成。例如,考虑以下的情形。
- 为了处理订单,需要核对以保证库存中有相应的物品。
- 如果库存有物品,这些物品需要预定以便不将它们再卖给别的人,并且要减少可用的物品数量以反映正确的库存量。
- 库存中没有的物品需要订购,这需要与供应商进行某种交互。
- 关于哪些物品入库和哪些物品退订,需要通知相应的客户。
技术封装:把所有的逻辑列出来以后,写一个相关的程序。这种过程就叫做 SQL的存储过程PROCEDURE。相当于在 SQL层面把开发给做掉,这就是 PROCEDURE做的事。
什么事存储过程,为什么要使用?
- 订单处理、库存何时
- 供应商进货
- 入库/退库
多组 SQL语句的组成,构成了一个业务逻辑
这个业务逻辑就是存储过程,是一段代码,其中包含了很多实物性的、功能性的内容
目的:简化逻辑、封装业务、安全隔离、保障数据(防止用户接触到最底层的数据表)
2 案例
2.1 创建存储过程
直接用 SQL查询均价(比较):
select avg(prod_price) as avgprice;
把查询均价的过程封装在 PROCEDURE中:
create PROCEDURE productpricing() # 带上括号
BEGIN
select avg