mysql 存储过程实际应用_MySQL ------ 存储过程简单使用(二十五 ---2)

这篇博客展示了如何使用MySQL存储过程来处理订单总额并根据条件添加营业税。通过声明局部变量、条件判断及SELECT语句,实现了对特定客户订单的计税功能。存储过程包括获取订单总额、判断是否征税以及返回最终总额(含税或不含税)。博客还强调了DECLARE用于声明变量,COMMENT用于添加注释,以及BOOLEAN类型的使用。
摘要由CSDN通过智能技术生成

实际应用小例子

之前所使用的存储过程基本上都是封装mysql 简单的select 语句。虽然它们全都是有效的存储过程例子,但只有在存储过程中包含业务规则和智能处理时,他们的威力才会真正显示出来

如完成以下事情,获得与之前一样的订单合计,但需要对合计增加营业税,不过只针对某些顾客,主要就是:1、获得合计2、把营业税有条件的添加到合计  3、返回合计(带或不带税)

存储过程的实现如下:

delimiter $$--存储过程的名字时 : proce_ordertotal

--主要参数: onumber = order number

--taxable = 0 if not taxable,1 if taxable

--ototal = order total variable

create procedureproce_ordertotal

(in onumber int,in taxable boolean,out ototal decimal(8,1)

) comment'Obtain order total, optionally adding tax'

begin

--创建一个名为 total的局部变量,类型时decimal

declare total decimal(8,1);--创建一个名为 taxrate 的变量,类型时 int 默认值时6

declare taxrate int default 6;--获取订单编号为 onumber 的总数

select sum(item_price*quantity) from orderitems where order_num = onumber intototal;--判断是否是真

if taxable then

--如果是真 表示要收税,总共要收 总价*1.06 结果赋给 total

select total+(total/100*taxrate) intototal;end if;--最后将 total 符给 ototal

select total intoototal;end $$

注意:

1、DECLARE 用于在存储过程体中增加局部变量,需要指定变量名和变量类型,可以给其默认值

2、COMMENT关键字使用在创建存储过程语句中,可写可不写,写的话会在show procedure status 的结果里显示

3、BOOLEAN 指定 1 表示真,0 表示假(实际上非零值都考虑为真,只有0视为假)

4、Mysql IF 语句基本用法(if --- then--),而且If语句还支持ELSEIF 和 else 子句(前者还是用THEN子句,后者不需要),SQL server中支持 case when then else

05ebcef8e0947e2812856b621afc0451.png

上述中,增加了注释(--),在复杂的存储过程中,注释时很有必要的,添加了另一个参数taxable(布尔值,增加税为真,否则为假)。

在存储过程体中,使用 declare 语句定义了两个局部变量,使用时需要给出变量名和数据类型,也支持可选的默认值(上述设置为 6%),select 语句发生了改变,将结果存储到  局部变量tota中,if 语句检查taxable 是否为真,如果为真使用另一条select语句增加到营业税到局部变量total 中,最后另一条select 语句将taotal (可能包含税也可能不包含)保存到ototal中。

查看一下:

727f58f1e41758a88f02e5443254462e.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值
>