实验10.2 修改和删除存储过程
【实验目的】
①掌握修改存储过程的方法。
②掌握删除存储过程的方法。
【实验内容】
①修改存储过程proc_Sumdol,通过顾客的cid和代理商aid来查询某一顾客订购的商品的总金额。
②修改存储过程proc_Qcustomer,把定义的变量cid的长度修改为20个字节。存储过程定义改为:根据顾客的cid来查询顾客的姓名、城市。
③用图形界面工具删除存储过程proc_Sumdol。
④用SQL语句删除存储过程proc_Qcustomer。
【实验步骤】
(1)修改存储过程proc_Sumdol
修改存储过程proc_Sumdol,要求通过顾客的cid和代理商aid来查询某一顾客订购的商品的总金额。
①在图标菜单中单击第一个图标
,新建一个查询窗口。
②在查询窗口输入如下代码,先将原始存储过程删除,再创建新的存储过程。
USE `sales`;
DROP PROCEDURE IF EXISTS `proc_Sumdol`;
DELIMITER $$
USE `sales`$$
CREATE PROCEDURE `proc_Sumdol`(
IN in_cid char(4),
IN in_aid char(3),
OUT dol_sum float)
BEGIN
SELECT sum(dollars) into dol_sum FROM orders WHERE cid = in_cid AND aid = in_aid;
END$$
③单击工具栏中的
按钮,执行上面的SQL语句,如图10.11所示。

图10.11 修改存储过程proc_Sumdol
(2)修改存储过程proc_Qcustomer
修改存储过程proc_Qcustomer,要求把定义的变量cid的长度修改为20个字节。存储过程定义改为根据顾客的cid来查询顾客的姓名、城市。
①在图标菜单中单击第一个图标
,新建一个查询窗口。
②在查询窗口中输入如下SQL语句:(https://www.daowen.com)
USE `sales`;
DROP PROCEDURE IF EXISTS `proc_Qcustomer`;
DELIMITER $$
USE `sales`$$
CREATE PROCEDURE `proc_Qcustomer`(
IN in_cid char(20),
OUT out_cname varchar(30),
OUT out_city varchar(50))
BEGIN
SELECT cname, city into out_cname, out_city FROM customers WHERE cid = in_cid;
END$$
③单击工具栏中的
按钮,执行上面的SQL语句,如图10.12所示。

图10.12 修改存储过程proc_Sumdol
(3)用图形界面工具删除存储过程
删除存储过程proc_Sumdol。
启动 MySQL Workbench,在“Navigator”导航栏的“Schemas”选项页中依次单击“sales”→“Stored Procedures”,右击“proc_Sumdol”,在快捷菜单中选择“Drop Stored Procedure”选项,并在弹出窗口选择“Drop Now”,如图10.13所示。

图10.13 删除存储过程proc_Sumdol
(4)用SQL语句删除存储过程
删除存储过程proc_Qcustomer。
①在图标菜单中单击第一个图标
,新建一个查询窗口。
②在查询窗口中输入如下SQL语句:
USE `sales`;
DROP PROCEDURE IF EXISTS `proc_Qcustomer`;
③单击工具栏中的
按钮,执行上面的SQL语句,如图10.14所示。

图10.14 删除存储过程proc_Qcustomer