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