閱讀下列說明,回答問題1至問題3,將解答填入答題紙的對應(yīng)欄內(nèi)。
【說明】
某健身俱樂部要開發(fā)一個(gè)信息管理系統(tǒng),該信息系統(tǒng)的部分關(guān)系模式如下:
員工(員工身份證號,姓名,工種,電話,住址)
會(huì)員(會(huì)員手機(jī)號,姓名,折扣)
項(xiàng)目(項(xiàng)目名稱,項(xiàng)目經(jīng)理,價(jià)格)
預(yù)約單(會(huì)員手機(jī)號,預(yù)約日期,項(xiàng)目名稱,使用時(shí)長)(外鍵:會(huì)員手機(jī)號)
消費(fèi)(流水號,會(huì)員手機(jī)號,項(xiàng)目名稱,消費(fèi)金額,消費(fèi)日期)(外鍵:會(huì)員手機(jī)號,項(xiàng)目名稱)
有關(guān)關(guān)系模式的屬性及相關(guān)說明如下:
(1)俱樂部有多種健身項(xiàng)目,不同的項(xiàng)目每小時(shí)的價(jià)格不同。俱樂部實(shí)行會(huì)員制,且需要電話或在線提前預(yù)約。
(2)每個(gè)項(xiàng)目都有一個(gè)項(xiàng)目經(jīng)理,一個(gè)經(jīng)理只能負(fù)責(zé)一個(gè)項(xiàng)目。
(3)俱樂部對會(huì)員進(jìn)行積分,達(dá)到一定積分可以進(jìn)行升級,不同的等級具有不同的折扣。
根據(jù)以上描述,回答下列問題:
【問題1】(4分)
請將下面創(chuàng)建消費(fèi)關(guān)系的SQL語句的空缺部分補(bǔ)充完整,要求指定關(guān)系的主碼、 外碼,以及消費(fèi)金額大于零的約束。
CREATE TABLE 消費(fèi)(
流水號 CHAR(12) (a) ,
會(huì)員手機(jī)號CHAR(11),
項(xiàng)目名稱CHAR (8),
消費(fèi)金額NUMBER (b) ,
消費(fèi)日期DATE,
(c) ,
(d) ,
);
【問題2】(6分)
(1)手機(jī)號為18812345678的客戶預(yù)約了 2014年3月18日兩個(gè)小時(shí)的羽毛球場地,消費(fèi)流水號由系統(tǒng)自動(dòng)生成。請將下面SQL語句的空缺部分補(bǔ)充完整。
INSERT INTO 消費(fèi)(流水號,會(huì)員手機(jī)號,項(xiàng)目名稱,消費(fèi)金額,消費(fèi)日期)
SELECT '201403180001','18812345678','羽毛球', (e) ,'2014/3/18'
FROM會(huì)員, 項(xiàng)目, 預(yù)約單
WHERE預(yù)約單.項(xiàng)目名稱=項(xiàng)目.項(xiàng)目名稱AND (f)
AND項(xiàng)目.項(xiàng)目名稱='羽毛球'
AND會(huì)員.會(huì)員手機(jī)號='18812345678';
(2)需要用觸發(fā)器來實(shí)現(xiàn)會(huì)員等級折扣的自動(dòng)維護(hù),函數(shù)float vip_value(char(11) 會(huì)員手機(jī)號)依據(jù)輸入的手機(jī)號計(jì)算會(huì)員的折扣。請將下面SQL語句的空缺部分補(bǔ)充完整。
CREATE TRIGGER VIP_TRG AFTER (g) ON (h)
REFERENCING new row AS nrow
FOR EACH ROW
BEGIN
UPDATE 會(huì)員
SET (i)
WHERE (j) ;
END
【問題3】(5分)
請將下面SQL語句的空缺部分補(bǔ)充完整。
(1)俱樂部年底對各種項(xiàng)目進(jìn)行績效考核,需要統(tǒng)計(jì)出所負(fù)責(zé)項(xiàng)目的消費(fèi)總金額 大于等于十萬元的項(xiàng)目和項(xiàng)目經(jīng)理,并按消費(fèi)金額總和降序輸出。
SELECT項(xiàng)目.項(xiàng)目名稱,項(xiàng)目經(jīng)理,SUM(消費(fèi)金額)
FROM項(xiàng)目,消費(fèi)
WHERE (k)
GROUP BY (l)
ORDER BY (m) ;
(2)查詢所有手機(jī)號碼以“888”結(jié)尾,姓“王”的員工姓名和電話。
SELECT姓名,電話
FROM 員工
WHERE 姓名 (n) AND 電話 (o)