閱讀下列說(shuō)明,回答問(wèn)題1至問(wèn)題3,將解答填入答題紙的對(duì)應(yīng)欄內(nèi)。
【說(shuō)明】
天津市某銀行信息系統(tǒng)的數(shù)據(jù)庫(kù)部分關(guān)系模式如下所示:
客戶(hù)(客戶(hù)號(hào),姓名,性別,地址,郵編,電話(huà))
賬戶(hù)(賬戶(hù)號(hào),客戶(hù)號(hào),開(kāi)戶(hù)支行號(hào),余額)
支行(支行號(hào),支行名稱(chēng),城市,資產(chǎn)總額)
交易(交易號(hào),賬戶(hù)號(hào),業(yè)務(wù)金額,交易日期)
其中,業(yè)務(wù)金額為正值表示客戶(hù)向賬戶(hù)存款;為負(fù)值表示取款。
【問(wèn)題1】
以下是創(chuàng)建賬戶(hù)關(guān)系的SQL語(yǔ)句,賬戶(hù)號(hào)唯一識(shí)別一個(gè)賬戶(hù),客戶(hù)號(hào)為客戶(hù)關(guān)系的唯一標(biāo)識(shí),且不能為空。賬戶(hù)余額不能小于1.00元。請(qǐng)將空缺部分補(bǔ)充完整。
CREATE TABLE 賬戶(hù)(
賬戶(hù)號(hào) CHAR(19) (a) ,
客戶(hù)號(hào) CHAR(10) (b) ,
開(kāi)戶(hù)支行號(hào) CHAR(6) NOT NULL ,
余額 NUMBER(8,2) (c) );
【問(wèn)題2】
(1)現(xiàn)銀行決策者希望查看在天津市各支行開(kāi)戶(hù)且2009年9月使用了銀行存取服務(wù)的所有客戶(hù)的詳細(xì)信息,請(qǐng)補(bǔ)充完整相應(yīng)的查詢(xún)語(yǔ)句。 (交易日期形式為’2000-01-01’)
SELECT DISTINCT 客戶(hù).*
FROM 客戶(hù), 賬戶(hù), 支行, 交易
WHERE 客戶(hù).客戶(hù)號(hào) = 賬戶(hù).客戶(hù)號(hào) AND
賬戶(hù).開(kāi)戶(hù)支行號(hào) = 支行.支行號(hào) AND
(d) AND
交易.賬戶(hù)號(hào) = 賬戶(hù).賬戶(hù)號(hào) AND
(e) ;
上述查詢(xún)優(yōu)化后的語(yǔ)句如下,請(qǐng)補(bǔ)充完整。
SELECT DISTINCT 客戶(hù).*
FROM 客戶(hù), 賬戶(hù), (f) AS 新支行, (g) AS 新交易
WHERE 客戶(hù).客戶(hù)號(hào) = 賬戶(hù).客戶(hù)號(hào) AND
賬戶(hù).開(kāi)戶(hù)支行號(hào) = 新支行.支行號(hào) AND
新交易.賬戶(hù)號(hào) = 賬戶(hù).賬戶(hù)號(hào)
(2)假定一名客戶(hù)可以申請(qǐng)多個(gè)賬戶(hù),給出在該銀行當(dāng)前所有賬戶(hù)余額之和超過(guò)百萬(wàn)的客戶(hù)信息并按客戶(hù)號(hào)降序排列。
SELECT *
FROM 客戶(hù)
WHERE (h)
(SELECT 客戶(hù)號(hào) FROM 賬戶(hù) GROUP BY 客戶(hù)號(hào) (i) )
ORDER BY (j) ;
【問(wèn)題3】
(1)為賬戶(hù)關(guān)系增加一個(gè)屬性“賬戶(hù)標(biāo)記” ,缺省值為0,取值類(lèi)型為整數(shù);并將當(dāng)前賬戶(hù)關(guān)系中所有記錄的“賬戶(hù)標(biāo)記”屬性值修改為0。請(qǐng)補(bǔ)充相關(guān)SQL語(yǔ)句。
ALTER TABLE 賬戶(hù) (k) DEFAULT 0 ;
UPDATE 賬戶(hù) (l) ;
(2)對(duì)于每筆金額超過(guò)10萬(wàn)元的交易,其對(duì)應(yīng)賬戶(hù)標(biāo)記屬性值加1,給出觸發(fā)器實(shí)現(xiàn)的方案。
CREATE TRIGGER 交易_觸發(fā)器 (m) ON 交易
REFERENCING NEW ROW AS 新交易
FOR EACH ROW
WHEN (n)
BEGIN ATOMIC
UPDATE 賬戶(hù) SET 賬戶(hù)標(biāo)記 = 賬戶(hù)標(biāo)記 + 1
WHERE (o) ;
COMMIT WORK ;
END ;