• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • MsSql
  • Mysql
  • oracle
  • MariaDB
  • DB2
  • SQLite
  • PostgreSQL
  • MongoDB
  • Redis
  • Access
  • 数据库其它
  • sybase
  • HBase
您的位置:首页 > 数据库 >Mysql > MySQL存储过程的删除操作和使用参数的示例详解

MySQL存储过程的删除操作和使用参数的示例详解

作者:匿名 字体:[增加 减小] 来源:互联网 时间:2018-12-05

匿名通过本文主要向大家介绍了MySQL,存储过程,删除操作,使用参数等相关知识,希望本文的分享对您有所帮助
删除存储过程

存储过程在创建之后,被保存在服务器上以供使用,直至被删除。删除命令(类似于第21章所介绍的语句)从服务器中删除存储过程。为删除刚创建的存储过程,可使用以下语句:

输入:

drop procedure productpricing;

分析:这条语句删除刚创建的存储过程。请注意没有使用后面的 () ,只给出存储过程名。

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


使用参数

productpricing 只是一个简单的存储过程,它简单地显示 SELECT 语句的结果。一般,存储过程并不显示结果,而是把结果返回给你指定的变量。

变量(variable)内存中一个特定的位置,用来临时存储数据。以下是 productpricing 的修改版本(如果不先删除此存储过程,则不能再次创建它):

输入:

create procedure productpricing(
out pl decimal(8,2),
out ph decimal(8,2),
out pa decimal(8,2)
)
begin
select min(prod_price) into pl from products;
select max(prod_price) into ph from products;
select avg(prod_price) into pa from products;
end;

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

参数的数据类型 存储过程的参数允许的数据类型与表中使用的数据类型相同。附录D列出了这些类型。

注意,记录集不是允许的类型,因此,不能通过一个参数返回多个行和列。这就是前面的例子为什么要使用3个参数(和3条 SELECT 语句)的原因。为调用此修改过的存储过程,必须指定3个变量名,如下所示:

输入:

call productpricing(@price low,
@pricehigh,
@priceaverage);

分析:由于此存储过程要求3个参数,因此必须正好传递3个参数,不多也不少。所以,这条 CALL 语句给出3个参数。它们是存储过程将保存结果的3个变量的名字。

变量名 所有MySQL变量都必须以 @ 开始。

在调用时,这条语句并不显示任何数据。它返回以后可以显示(或在其他处理中使用)的变量。为了显示检索出的产品平均价格,可如下进行:

输入:

select @priceaverage;

输出:

2.png

为了获得3个值,可使用以下语句:

输入:

select @pricehigh,@pricrlow,@priceaverage;

输出:

3.png

下面是另外一个例子,这次使用 IN 和 OUT 参数。 ordertotal 接受订单

号并返回该订单的合计:

输入:

create procedure ordertotal(
in onumber int,
out ototal decimal(8,2)
)
begin
select sum(item_price*quantity) from orderitems where order_num = onumber into ototal;
end;

分析:onumber 定义为 IN ,因为订单号被传入存储过程。 ototal 定义为 OUT ,因为要从存储过程返回合计。 SELECT 语句使用这两个参数, WHERE 子句使用 onumber 选择正确的行, INTO 使用 ototal 存储计算出来的合计。

为调用这个新存储过程,可使用以下语句:

输入:

call ordertotal(20005,@total);

分析:必须给 ordertotal 传递两个参数;第一个参数为订单号,第二个参数为包含计算出来的合计的变量名。为了显示此合计,可如下进行:

输入:

select @total;

输出:

4.png

分析:@total 已由 ordertotal 的 CALL 语句填写, SELECT 显示它包含的值。为了得到另一个订单的合计显示,需要再次调用存储过程,然后重新显示变量:

输入:

call ordertotal(20009,@total);
select @total;

以上就是MySQL存储过程的删除操作和使用参数的示例详解的详细内容,更多请关注微课江湖其它相关文章!

分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • 分享下mysql各个主要版本之间的差异
  • MySQL essential版本和普通版本有什么区别?
  • redhat 5.4下安装MYSQL全过程
  • 如何用SQL命令查看Mysql数据库大小
  • 解析mysql中如何获得数据库的大小
  • 解析mysql修改为utf8后仍然有乱码的问题
  • 5个常用的MySQL数据库管理工具详细介绍
  • 解析在MySQL里创建外键时ERROR 1005的解决办法
  • 解析远程连接管理其他机器上的MYSQL数据库
  • mysql 精简过程(删除一些文件)

相关文章

  • 2017-05-11Mysql varchar大小长度问题介绍
  • 2018-12-05MongoDB结合Flexgrid的简单数据呈现
  • 2018-12-05关于由小变大的文章推荐
  • 2018-12-05MySQL使用一个语句就可以查出各种整形占用字节数及最大最小值的示例代码
  • 2018-12-05更改SQL Server更改当前数据库的所有者:sp_changedbowner
  • 2018-12-05在ADF中跟踪SQL执行时间实现代码
  • 2018-12-05php连接mysql数据库详细步骤(图文)
  • 2017-05-11MySQL timestamp自动更新时间分享
  • 2018-12-05sqlserver中创建链接服务器图解教程
  • 2018-12-05MySQL · 引擎特性 · InnoDB IO子系统的详情介绍

文章分类

  • MsSql
  • Mysql
  • oracle
  • MariaDB
  • DB2
  • SQLite
  • PostgreSQL
  • MongoDB
  • Redis
  • Access
  • 数据库其它
  • sybase
  • HBase

最近更新的内容

    • 关于MYSQL 远程登录的授权方法 命令
    • mysql 配置参数详解
    • 分享用MongoDB中oplog机制实现数据监控实例
    • MySQ登录提示ERROR 1045 (28000)错误如何解决
    • Mysql命令行登录常用操作系统概述
    • mysql数据库基础语句训练题详细代码
    • MySQL与Oracle 差异比较之三函数
    • 在Windows上安装MongoDB(译)
    • mysql数据库备份命令分享(mysql压缩数据库备份)
    • mysql 优化(1)表的优化与列类型选择

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有