mysql 存储过程参数集合_《MySQL必知必会》学习笔记 9 使用存储过程

1、存储过程:保存1条或多条SQL语句的集合(类似批文件),实际上是一种函数

创建存储过程一般管理员权限,普通用户使用。

2、为什么要有存储过程:需要用到不止1条语句,涉及不止1张表

语句是否执行以及次序不是固定的

比如,为了处理订单需要核对库存中是否有相应的物品;如果有,就需要选中被预定以防再给其他人库存数量也要相应修改;如果没有,需要订购,这又会去查找供应商表;最终检查库存的结果需要返回给客户。

3、好处:简化复杂操作

防止错误,保证了数据完整性

简单、安全、高性能

4、创建存储过程

CREATE PROCEDURE xxx() #()是可能带参数

BEGIN

XXXXX;

XXXX

END;

1)过程创建前先修改命令行的语句分隔符默认是分号,不改会导致在BEGIN内的语句第一次遇到分号就被认为输入结束

否则会报错:

最后改回来:

2)创建无参数过程无参数的procedure

3)创建有参数过程有参数的procedure,OUT关键字表示一个值从存储过程出

DECIMAL(8,2) 定长8位,其中小数点2位

关键字:OUT 从存储过程出

IN 从存储过程进

INOUT 从存储过程进、出参数一个IN,一个OUT

5、执行存储过程

CALL ordertotal(20005, @total);无参数有参数,CALL的执行是把数值放在变量里,查看数值需要SELECT 变量

注意MYSQL变量都已@开始。IN参数直接给数值,OUT参数给变量,变量以@开头

6、删除存储过程

DROP PROCEDURE IF EXISTS xxx; #不带()

7、检查存储过程

SHOW CREATE PROCEDURE xxx;

SHOW PROCEDURE STATUS;(特别长)

SHOW PROCEDURE STATUS LIKE “xxx”;SHOW PROCEDURE STATUS LIKE “ordertotal”限定过滤模式

8、创建一个比较复合的存储过程:

总计某订单的总金额,其中总金额是否包含税费 是可选参数 。

其中,

1)DECLARE total声明局部变量total,最后SELECT total INTO ototal,存入OUT ototal中。

2)comment结果将在show procedure status中显示:

调用1:boolean为0

调用2:boolean为1

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值