摘要:希赛网为大家整理了2017上半年数据库系统工程师考试案例分析真题,以下为第四部分。试题四(共15分)阅读下列说明,回答问题1至问题5,将解答填入答题纸的对应栏内。【说明】某公司要
希赛网为大家整理了2017上半年数据库系统工程师考试案例分析真题,以下为第四部分。
试题四(共15分)
阅读下列说明,回答问题1至问题5,将解答填入答题纸的对应栏内。
【说明】
某公司要对其投放的自动售货机建立商品管理系统,其数据库的部分关系模式如下:售货机:VEMαEMn垒,Location),各属性分别表示售货机编号、部署地点:
商品:GOODS(坠垒,Bra时,Price),各属性分别表示商品编号、品牌名和价格;
销售单:SALES(S.凹,VEMno,Gno,SDate,STime),各属性分别表示销售号、售货机编号、商品编号、日期和时间。
缺货单:OOS(VE地o.Gno.SDa也STim),各属性分别表示售货机编号、商品编号、日期和时间。
相关关系模式的属性及说明如下:(1)售货机摆放固定种类的商品,售货机内每种商品最多可以储存10件。管理员在每天结束的时候将售货机中所有售出商品补全
(2)每售出一件商品,就自动向销售单中添加一条销售记录。如果一天内某个售货机上某种商品的销售记录达到10条,则表明该售货机上该商品已售完,需要通知系统立即补货,通过自动向缺货单中添加一条缺货记录来实现。
根据以上描述,回答下列问题,将SQL语句的空缺部分补充完整。
【问题1】(3分)
请将下面创建销售单表的SQL语句补充完整,要求指定关系的主码和外码约束。
CREATETABLESALES(
Sno CHAR(8)(a)
VEl\缸oCHAR(5)(b)
Gno CHAR(8)(c)
SDateDATE,
STime TIME);
【问题2】(4分)
创建销售记录详单视图SALES Detail,要求按日期统计每个售货机上各种商品的销售数量,属性有VEMno、Location、Gno、Brand、Price、amount和SD础。为方便实现,首先建立一个视图SALES_Total,然后利用SALES Total完成视图SALES Detail的定义。
CREATE VIEW SALES _tTotal(VEMno,Gno,SDate,amount)AS
SELECT VENno,Gno,SDate,count(*)
FROM SALES
GROUP BY(d);
CREATE VIWE(e)AS
SELECT VEM.VEMno,Location,GOODS.Gno,Brand,Price,amount,SDate
FROMVE GOODS,SALES_Total
WHERE(f)AND(g)
【问题3】(3分)
每售出一件商品,就自动向销售单中添加一条销售记录。如果一天内某个售货机上某种商品的销售记录达到10条,则自动向缺货单中添加一条缺货记录。需要用触发器来实现缺货单的自动维护。程序中的GetTimeO获取当前时间。
CREAT(h)OOS TRG AFTER(i)ONSALES ON SALES
REFERENCING new row AS nrow FOREACHROW
FOR EACH ROW
BEGIN
INSERT INTO OOS
SELECT SALES.VENno(j)Get Time()
FROMSALES
WHERE SALES.VEMno=nrow.VEMno AND SALES.Gno=nrow.Gno
AND SALES.SDate=nrow.SDate
GROUP BY SALES.VEl\在no,SALES.Gno,SALES.SDate
HAVING count(*)>0 AND mod(count(*),10)=0;
END
【问题4】(3分)
查询当天销售最多的商品编号、品牌和数量。程序中的GetDate()获取当天日期。
SELECT GOODS.Gno,Brand,(k)
FROM GOODS,SALES
WHERE GOODS.Gno=SALES.GNO AND SDATE=GEEDATE()
GROUP BY(1)
HAVING(M)(SELECT count(*)
FORM SALELS
WHERE SDATE=GETDATE()
GROUP BY GNO);
【问题5】(2分)
查询一件都没有售出的所有商品编号和品牌。
SELECT GNO,BRAND
FROM GOODS
WHERE GNO(N)
SELECT DISTINCT GNO
FROM(O)
>>>>返回目录:2017上半年数据库系统工程师考试案例分析真题(汇总)
>>>>进入估分:2017上半年软考分数早知道,在线估分+真题解析
>>>>点击查看:2017上半年数据库系统工程师考试案例分析真题答案和解析
软考备考资料免费领取
去领取