23. 使用存储过程

1. 存储过程

  1. 存储过程简单来说,就是为以后的使用而保存的一条或多条MySQL语句的集合。可将其视为批文件,虽然它们的作用不仅限于批处理

2. 为什么要使用存储过程

  1. 使用存储过程有3个主要的好处,即简单、安全、高性能。显然,它们都很重要

3. 使用存储过程

3.1. 执行存储过程

  1. MySQL称存储过程的执行为调用,因此MySQL执行存储过程的语句为CALL。
  2. img
  3. 存储过程可以显示结果,也可以不显示结果,

3.2. 创建存储过程

img
  1. 临时更改命令行实用程序的语句分隔符

  2. img
  3. 使用该存储过程

    1. img

3.3. 删除存储过程

img
  1. 仅当存在时删除如果指定的过程不存在,则DROP PROCEDURE将产生一个错误。当过程存在想删除它时(如果过程不存在也不产生错误)可使用DROP PROCEDURE IF EXISTS。

3.4. 使用参数

  1. 变量(variable)内存中一个特定的位置,用来临时存储数据。

  2. img
  3. 此存储过程接受3个参数:pl存储产品最低价格,ph存储产品最高价格,pa存储产品平均价格。每个参数必须具有指定的类型,这里使用十进制值。关键字OUT指出相应的参数用来从存储过程传出一个值(返回给调用者)。MySQL支持IN(传递给存储过程)、OUT(从存储过程传出,如这里所用)和INOUT(对存储过程传入和传出)类型的参数。存储过程的代码位于BEGIN和END语句内,如前所见,它们是一系列SELECT语句,用来检索值,然后保存到相应的变量(通过指定INTO关键字)

  4. 存储过程的参数允许的数据类型与表中使用的数据类型相同。

  5. 为了显示检索出的产品平均价格,可如下进行:

    1. img
  6. 这次使用IN和OUT参数。ordertotal接受订单号并返回该订单的合计:

    1. img
    2. img
    3. img

3.5. 建立智能存储过程

img
img

3.6. 检查存储过程

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

img

限制过程状态结果 SHOW PROCEDURE STATUS列出所有存储过程。为限制其输出,可使用LIKE指定一个过滤模式,

img

23. 使用存储过程
http://binbo-zappy.github.io/2024/11/27/mysql_bzbh/23-使用存储过程/
作者
Binbo
发布于
2024年11月27日
许可协议