RuanKao.net 软考网(Beta 2.2)
2009年上半年数据库系统工程师下午试题
【试题】阅读下列说明,回答问题1 至问题3,将解答填入答题纸的对应栏内。【说明】某网上书店后台数据库的部分关系模式如下:会员(会员编号,用户名,密码,姓名,地址,邮编,电话,消费额,积分)图书(图书编号,类型名称,图书名称,作者,出版社,出版日期,ISBN,价格)订单(订单编号,用户名,销售额,订购日期,出货日期)订单明细(订单明细编号,订单编号,图书编号,数量)【问题1】(3 分)下面是创建订单关系的SQL 语句,订单编号唯一识别一个订单,用户名为订购图书的会员用户名,且不能为空。要求订购日期不能大于出货日期。请将空缺部分补充完整。CREATE TABLE 订单(订单编号 CHAR(6) (a),用户名 VARCHAR(40) NOT NULL (b), ,销售额 FLOAT ,订购日期 DATE NOT NULL ,出货日期 DATE (c) ) ;【问题2】(10 分)请完成下列查询的SQL 语句。(1)查询名称中包含“数据库”的图书的图书名称,作者,出版社和出版日期。SELECT (d)FROM 图书WHERE 图书名称 (e) ;(2)查询提供销售(图书表中有)但没有销售过(没在订单明细表中出现)的图书名称和出版社。SELECT 图书名称, 出版社FROM 图书WHERE NOT EXISTS (SELECT (f)FROM 订单明细WHERE (g) ) ;(3)查询订购图书数量最多的会员名及其订购的数量。SELECT 用户名, (h)FROM 订单, 订单明细WHERE (i)GROUP BY 用户名HAVING (j)( SELECT SUM(数量)FROM 订单, 订单明细WHERE 订单.订单编号 = 订单明细.订单编号GROUP BY 用户名) ;(4)为了统计会员的购买行为信息,实施有意义的客户关怀策略,查询会员的平均订购间隔时间,考虑多次购买图书和一次购买图书的情况(其中,DATEDIFF 函数表示两个日期之间的天数)。SELECT 用户名, CASE WHEN (k)THEN DATEDIFF(MAX(订购日期), MIN(订购日期)) / (l)ELSE DATEDIFF (CURRENT_TIMESTAMP, MIN(订购日期))END AS AVG_GAPFROM 订单(m) ;【问题3】(2 分)会员订购图书后,将本次订购的销售额累加到该会员的消费额中,并按照本次订单的销售额计算积分累加到该会员的积分中(每20 元增加1 个积分,不足20 元不计入积分)。下面用触发器实现该需求,请填充空缺部分。CREATE TRIGGER 会员积分_TRIGGER AFTER (n)REFERENCING NEW ROW AS NROWBEGINUPDATE 会员SET 消费额 = 消费额 + NROW.销售额, (o)WHERE 用户名 = NROW.用户名END 【以下正在生成完整试卷,需安装
PDF阅读工具】
相关链接
联系我们:

(站务、友情链接、投稿、反馈、纠错)
本站资源不断在完善更新。如果本站对你有用,请在你的博客、MSN、QQ上推荐给更多朋友,谢谢!
本站不接受广告。欢迎与本站交换友情链接,请做好链接后发邮件给我们。