全国计算机二级MySQL操作题(4)

2018-12-27 16:06

请创建一个存储过程priceIncrementByCat,根据指定的类别名称(长度20的字符型)、以及价格浮动比例(Double型),对该类别中所有的商品进行价格调整(要求在存储过程中,只能使用一条UPDATE语句,不能使用其他对product和category表进行操作的SQL语句)。如果成功进行了相关修改,使用ROW_COUNT()

函数打印出经价格修改的商品数目;否则,打印出错误信息。可参考如下所示方式打印出执行结果: +---------------------------------------------------------------+ | Result |

+--------------------------------------------------------------+ | 类别:\食品\中,有3件商品价格已被更新! |

+--------------------------------------------------------------+ 或者:

+--------------------------------------------------------+ | Result |

+-------------------------------------------------------+ | 类别名称不存在、或者该类别中无商品! |

+-------------------------------------------------------+

注意:在考生文件夹中的sj22.txt文件已给出部分程序,但程序不完整,请删除下划线,并在下划线处填上适当的内容,使程序补充完整,并按原文件名保存在考生文件夹下,否则没有成绩,最后运行测试。

1)【参考答案】 DELIMITER $$

CREATE TRIGGER custLevel BEFORE INSERT ON customer FOR EACH ROW BEGIN

DECLARE creditlim INT; SET creditlim=new.creditlimit; IF creditlim> 50000 THEN SET NEW.customerLevel = '1st Level ';

ELSEIF(creditlim<= 50000 &&creditlim>= 10000) THEN SET NEW.customerLevel = '2nd Level '; ELSEIF creditlim< 10000 THEN

SET NEW.customerLevel = '3rd Level'; END IF ; END $$

2)【参考答案】 DELIMITER $$

CREATE PROCEDURE priceIncrementByCat(IN p_catname CHAR(20), IN p_increment DECIMAL(10,2)) BEGIN

UPDATE product p,category c SET p.price=p.price*(1+p_increment) WHERE p.cid=c.cid AND c.cname=p_catname; IF(ROW_COUNT()=0) THEN

SELECT '类别名称不存在、或者该类别中无商品!' AS Result; ELSE

SELECT ('类别:\中,有', ROW_COUNT(),'件商品价格已被更新!') AS Result; END IF; END $$

DELIMITER ;

mysqltest数据库中有学生表(student)、系别表(dept):

student:{sid,sname,score,deptno}(字段说明:学号,姓名,成绩,系别编号) dept:{deptno,deptname }(字段说明:系别编号,系名称)编写一个sj3.php页面,如下图所示:


全国计算机二级MySQL操作题(4).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:第七届电子商务大赛复赛题目及答案1

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: