软考真题
第162题
阅读下列说明,回答问题1至问题5 ,将解答填入答题纸的对应栏内。

【说明】
某公司要对其投放的自动售货机建立商品管理系统,其数据库的部分关系模式如下:

售货机: VEM(VEMno, Location) ,各属性分别表示售货机编号、部署地点;

商品: GOODS(Gno, Brand, Price) ,各属性分别表示商品编号、品牌名和价格;

销售单: SALES(Sno, VEMno,Gno,SDate,STime),各属性分别表示销售号、售货机编号、商品编号、日期和时间。

缺货单: OOS(VEMno,Gno,SDate,STime ),各属性分别表示售货机编号、商品编号、 日期和时间。

相关关系模式的属性及说明如下: (1) 售货机摆放固定种类的商品,售货机内每种商品最多可以储存10 件。管理员在每天结束的时候将售货机中所有售出商品补全

(2) 每售出一件商品,就自动向销售单中添加一条销售记录。如果一天内某个售货机上某种商品的销售记录达到10 条,则表明该售货机上该商品已售完,需要通知系统立即补货,通过自动向缺货单中添加一条缺货记录来实现。

根据以上描述,回答下列问题,将SQL语句的空缺部分补充完整。
【问题:4.1】(3 分)
请将下面创建销售单表的 SQL 语句补充完整,要求指定关系的主码和外码约束。
CREATE TABLE SALES(
Sno CHAR(8) (a)
VEMno CHAR(5) (b)
Gno CHAR(8) (c)
SDate DATE,
STime TIME);
【问题:4.2】(4分)
创建销售记录详单视图 SALES_Detail ,要求按日期统计每个售货机上各种商品的销售数量,属性有 VEMno、Location 、Gno、Brand 、Price 、amount 和 SDate。为方便实现,首先建立一个视图 SALES_Total ,然后利用SALES_Total 完成视图 SALES_Detail 的定义。
CREATE VIEW SALES _Total(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
FROM VEM,GOODS,SALES_Total
WHERE (f) AND (g)
【问题:4.3】(3分)
每售出一件商品,就自动向销售单中添加一条销售记录。如果一天内某个售货机上某种商品的销售记录达到 10 条,则自动向缺货单中添加一条缺货记录。需要用触发器来实现缺货单的自动维护。程序中的 GetTime()获取当前时间。
CREAT(h) OOS_TRG AFTER (i) ON SALES
REFERENCING new row AS nrow
FOR EACH ROW
BEGIN
INSERT INTO OOS
SELECT SALES .VENno, (j) GetTime()
FROMSALES
WHERE SALES.VEMno = nrow.VEMno AND SALES.Gno = nrow.Gno
AND SALES.SDate = nrow.SDate
GROUP BY SALES.VEMno,SALES.Gno,SALES.SDate
HAVING count(*)> 0 AND mod(count(*), 10)=0;
END
【问题:4.4】(3分)
查询当天销售最多的商品编号、品牌和数量。程序中的 GetDate()获取当天日期。
SELECT GOODS.Gno ,Brand, (k)
FROM GOODS,SALES
WHERE GOODS.Gno=SALES.GNO AND SDATE =GetDate()
GROUP BY (1)
HAVING(M) (SELECT count(*)
FROM SALELS
WHERE SDATE = GetDate()
GROUP BY Gno);
【问题:4.5】(2分)
查询一件都没有售出的所有商品编号和品牌。
SELECT Gno ,Brand
FROM GOODS
WHERE GNO(N)
SELECT DISTINCT GNO
FROM(o);
第8章SQL语言
正确答案:
你的答案:
请先在App中激活(应用市场搜“软考真题”)
知识点:
试卷:
2017年 上半年 下午试卷 案例

笔记

黑白灰

请先在App中激活(应用市场搜“软考真题”)

2020-11-06


朝入洞玄暮知命

请先在App中激活(应用市场搜“软考真题”)

2023-05-21