天津市某银行信息系统的数据库部分关系模式如下所示: 客户(客户号,姓名,性别,

资格题库2022-08-02  79

问题 天津市某银行信息系统的数据库部分关系模式如下所示:客户(客户号,姓名,性别,地址,邮编,电话)账户(账户号,客户号,开户支行号,余额)支行(支行号,支行名称,城市,资产总额)交易(交易号,账户号,业务金额,交易日期)其中,业务金额为正值表示客户向账户存款;为负值表示取款。【问题1】以下是创建账户关系的SQL语句,账户号唯一识别一个账户,客户号为客户关系的唯一标识,且不能为空。账户余额不能小于1.00元。请将空缺部分补充完整。 CREATE TABLE 账户( 账户号  CHAR(19)     (a)      ,  客户号  CHAR(10)     (b)      ,  开户支行号  CHAR(6)    NOT NULL ,余额  NUMBER(8,2)   (c)  );  【问题2】(1)现银行决策者希望查看在天津市各支行开户且2009年9月使用了银行存取服务的所有客户的详细信息,请补充完整相应的查询语句。 (交易日期形式为’2000-01-01’) SELECT DISTINCT 客户.*FROM 客户, 账户, 支行, 交易WHERE 客户.客户号  = 账户.客户号  AND账户.开户支行号  = 支行.支行号  AND(d)    AND交易.账户号  = 账户.账户号  AND(e)   ;   上述查询优化后的语句如下,请补充完整。SELECT DISTINCT 客户.*FROM 客户, 账户, (f) AS 新支行,   (g)    AS 新交易WHERE 客户.客户号  = 账户.客户号  AND账户.开户支行号  = 新支行.支行号  AND新交易.账户号  = 账户.账户号(2)假定一名客户可以申请多个账户,给出在该银行当前所有账户余额之和超过百万的客户信息并按客户号降序排列。SELECT    *FROM 客户  WHERE   (h)  (SELECT 客户号  FROM 账户  GROUP BY 客户号   (i)    )ORDER BY   (j)    ;【问题3】(1)为账户关系增加一个属性“账户标记” ,缺省值为0,取值类型为整数;并将当前账户关系中所有记录的“账户标记”属性值修改为0。请补充相关SQL语句。ALTER TABLE 账户    (k)  DEFAULT 0 ;UPDATE 账户   (l)  ;(2)对于每笔金额超过10万元的交易,其对应账户标记属性值加1,给出触发器实现的方案。CREATE TRIGGER 交易_触发器   (m)    ON 交易REFERENCING NEW ROW AS 新交易FOR EACH ROWWHEN (n)     BEGIN ATOMICUPDATE 账户  SET 账户标记  = 账户标记  + 1  WHERE   (o)  ;COMMIT WORK ;END ;

选项

答案

解析 【问题1】
(a)PRIMARY KEY/NOT NULL UNIQUE/NOT NULL PRIMARY KEY
(b)NOT NULL  REFERENCES客户(客户号)
(c)CHECK(余额>=1.00)
【问题2】
(1)
(d)支行.城市=’天津市’
(e)交易.交易日期LIKE ’2009-09-%’或等价表示
注:(d)(e)次序无关
(f) (SELECT* FROM支行WHERE城市=’天津市’)
(g)(SELECT * FROM交易WHERE交易日期LIKE ’2009-09%’)或等价表示
(2)
(h)客户号IN
(i) HAVING SUM(余额)> 1000000.00或等价表示
(J)客户号DESC
【问题3】
(1)
(k) ADD 账户标记 INT
(l) SET账户标记=0;
(2)
(m)AFTER INSERT
(n)新交易.业务金额> 100000.00或等价表示
(o)账户.账户号=新交易.账户号
转载请注明原文地址:https://tihaiku.com/congyezige/2419606.html

最新回复(0)