有一个数据表food,内容如下:
Foodid Name Company price Product_time Validity_time address
1 QQ饼干 QQ饼干厂 2.5 2008 3 北京
2 MN牛奶 MN牛奶厂 3.5 2009 1 河北
3 EE果冻 EE果冻厂 1.5 2007 2 北京
4 FF咖啡 FF咖啡厂 20 2002 5 天津
5 GG奶糖 GG奶糖厂 14 2003 3 广东
建立好food表后,完成以下内容:
(1)在food表上创建名为Pfood_price_count的存储过程。其中,存储过程有三个参数。输入参数为price_info1和price_info2,输出参数为count。存储过程满足:查询food表中食品单价高于price_info1且低于price_info2的食品种数,然后由count参数来输出,并且计算满足条件的单价的总和。
(2)使用call语句调用存储过程。查询价格在2至18之间的食品种数。
(3)使用select语句查看结果。
(4)使用drop语句删除存储过程Pfood_price_count。
mysql> create table food(
-> fooddid int,
-> name varchar(255),
-> company varchar(255),
-> price double,
-> product_time int,
-> validity_time int,
-> address varchar(20)
-> );
Query OK, 0 rows affected (0.01 sec)
mysql> insert into food values(1,“QQ饼干”,“QQ饼干厂”,2.5,2008,3,“北京”),(2,“MN牛
奶”,“MN牛奶厂”,3.5,2009,1,“河北”);
Query OK, 2 rows affected (0.00 sec)
Records: 2 Duplicates: 0 Warnings: 0
mysql> select * from food;
±--------±-------±---------±------±-------------±--------------±--------+
| fooddid | name | company | price | product_time | validity_time | address |
±--------±-------±---------±------±-------------±--------------±--------+
| 1 | QQ饼干 | QQ饼干厂 | 2.5 | 2008 | 3 | 北京 |
| 2 | MN牛奶 | MN牛奶厂 | 3.5 | 2009 | 1 | 河北 |
±--------±-------±---------±------±-------------±--------------±--------+
mysql> – 创建存储过程
mysql> delimiter //
mysql> create procedure Pfood_price_count(in price_info1 double,in price_info2 d
ouble,out count int)
-> begin
-> select count(*) into count from food
-> where price between price_info1 and price_info2;
-> end;
-> //
Query OK, 0 rows affected (0.01 sec)
mysql> set @count =0;
-> call Pfood_price_count(2,18,@count);
-> select @count;
-> //
Query OK, 0 rows affected (0.00 sec)
Query OK, 0 rows affected (0.00 sec)
±-------+
| @count |
±-------+
| 2 |
±-------+
1 row in set (0.00 sec)
mysql> drop procedure Pfood_price_count;
-> //
Query OK, 0 rows affected (0.01 sec)