16.8.1 在存储过程中使用变量
可以在存储过程和函数中使用变量,本节简单介绍一个在存储过程中使用变量的完整示例。
1.需求描述
在db_goods数据库中创建名为SelectCountAndPrice的存储过程,在存储过程中定义3个变量,分别为totalcount、totalprice和avgprice。其中,totalcount为INT类型,默认值为0;totalprice和avgprice为DECIMAL(10,2)类型,默认值为0.00。查询t_goods表中的记录条数,并将其赋值给变量totalcount,统计t_goods表中所有商品的总价格,将其赋值给变量totalprice。接下来将totalprice除以totalcount得出的平均价格赋值给变量avgprice。最后输出totalprice、totalcount和avgprice的值。
2.代码实现
创建存储过程,在MySQL命令行中执行代码。
mysql> DELIMITER $$
mysql> CREATE PROCEDURE SelectCountAndPrice()
-> BEGIN
-> DECLARE totalcount INT DEFAULT 0;
-> DECLARE totalprice, avgprice DECIMAL(10,2) DEFAULT 0.00;
-> SELECT COUNT(*) INTO totalcount FROM t_goods
-> SELECT SUM(