【正文】
ERE higherdeptno!=39。39。 VIEW SJAVA AS SELECT , FROM s,c,sc WHERE = AND = AND =39。JAVA39。 sc SET grade=90 WHERE sno=(SELECT sno FROM s WHERE sname=39。李紅39。) AND o=(SELECT o FROM c WHERE ame=39。DB39。)。 USER 39。backupdb39。@39。localhost39。 IDENTIFIED BY 39。backup39。現(xiàn)有數(shù)據(jù)庫(kù)mysqltest下: 1. 現(xiàn)有Customer表:(customerNumber int primary key, creditlimit int NOT NULL, customerLevel CHAR(20) DEFAULT 39。39。 ),其中customerNumber為客戶編號(hào),creditlimit記錄了某個(gè)用戶當(dāng)前的信貸限額。請(qǐng)創(chuàng)建一個(gè)觸發(fā)器,在插入新的客戶記錄時(shí),能夠根據(jù)用戶的的信貸限額設(shè)置其customerLevel;具體規(guī)如下:若當(dāng)前信貸限額大于50000,則用戶評(píng)級(jí)為 1st Level;若當(dāng)前信貸限額大于等于10000且小于等于50000,則用戶評(píng)級(jí)為2nd Level;若當(dāng)前信貸限額小于10000,則用戶評(píng)級(jí)為 3rd Level。 注意:,但程序不完整,請(qǐng)刪除下劃線,并在下劃線處填上適當(dāng)?shù)膬?nèi)容,使程序補(bǔ)充完整,并按原文件名保存在考生文件夾下,否則沒有成績(jī),最后運(yùn)行測(cè)試。 2. 假設(shè)有商品表(product)和商品類別表(category):product:{pid,pname,cid,price}(字段說明:商品編號(hào),商品名,類別編號(hào),價(jià)格)category:{cid,ame }(字段說明:類別編號(hào),類別名稱) 請(qǐng)創(chuàng)建一個(gè)存儲(chǔ)過程priceIncrementByCat,根據(jù)指定的類別名稱(長(zhǎng)度20的字符型)、以及價(jià)格浮動(dòng)比例(Double型),對(duì)該類別中所有的商品進(jìn)行價(jià)格調(diào)整(要求在存儲(chǔ)過程中,只能使用一條UPDATE語(yǔ)句,不能使用其他對(duì)product和category表進(jìn)行操作的SQL語(yǔ)句)。如果成功進(jìn)行了相關(guān)修改,使用ROW_COUNT()函數(shù)打印出經(jīng)價(jià)格修改的商品數(shù)目;否則,打印出錯(cuò)誤信息。可參考如下所示方式打印出執(zhí)行結(jié)果:++| Result |++| 類別:食品中,有3件商品價(jià)格已被更新! |++或者:++| Result |++| 類別名稱不存在、或者該類別中無商品! |++ 注意:,但程序不完整,請(qǐng)刪除下劃線,并在下劃線處填上適當(dāng)?shù)膬?nèi)容,使程序補(bǔ)充完整,并按原文件名保存在考生文件夾下,否則沒有成績(jī),最后運(yùn)行測(cè)試。1)【參考答案】 DELIMITER $$CREATE TRIGGER custLevel BEFORE INSERT ON customer FOR EACH ROWBEGINDECLARE creditlim INT。SET creditlim=。IF creditlim 50000 THEN SET = 39。1st Level 39。 ELSEIF(creditlim = 50000 amp。amp。creditlim = 10000) THEN SET = 39。2nd Level 39。ELSEIF creditlim 10000 THEN SET = 39。3rd Level39。END IF 。 END $$2)【參考答案】 DELIMITER $$CREATE PROCEDURE priceIncrementByCat(IN p_catname CHAR(20), IN p_increment DECIMAL(10,2))BEGINUPDATE product p,category c SET =*(1+p_increment)WHERE = AND =p_catname。IF(ROW_COUNT()=0) THEN SELECT 39。類別名稱不存在、或者該類別中無商品!39。 AS Result。ELSE SELECT (39。類別:39。,p_catname,39。中,有39。, ROW_COUNT(),39。件商品價(jià)格已被更新!39。) AS Result。END IF。END $$DELIMITER 。mysqltest數(shù)據(jù)庫(kù)中有學(xué)生表(student)、系別表(dept): student:{sid,sname,score,deptno}(字段說明:學(xué)號(hào),姓名,成績(jī),系別編號(hào)) dept:{deptno,deptname }(字段說明:系別編號(hào),系名稱),如下圖所示: