1. 首页
  2. 数据库系统工程师
  3. 2017年上半年数据库系统工程师考试下午真题【应用技术】
  4. 真题详解

2017年上半年数据库系统工程师考试下午真题【应用技术】(第4题)

试题【4】(15分)

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

【说明】

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

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

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

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

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

  相关关系模式的属性及说明如下:

  (1)售货机摆放固定种类的商品,售货机内每种商品最多可以储存10件。管理员在每天结束的时候将售货机中所有售出商品补全

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

  根据以上描述,回答下列问题,将SQL语句的空缺部分补充完整。

问题1(3.0分)

  请将下面创建销售单表的SQL语句补充完整,要求指定关系的主码和外码约束。

  CREATE TABLE SALES (

  Sno CHAR(8)(a)

  VEMno CHAR(5)(b)

  Gno CHAR(8)(c)

  SDate DATE,

  STime TIME );

暂无

问题2(4.0分)

  创建销售记录详单视图SALES Detail,要求按日期统计每个售货机上各种商品的销售数量,属性有VEMno、Location、Gno、Brand、Price、amount和SDate。为方便实现,首先建立一个视图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

  FROM VEM,GOODS,SALES_Total

  WHERE ( f ) AND ( g )

暂无

问题3(3.0分)

  每售出一件商品,就自动向销售单中添加一条销售记录。如果一天内某个售货机上某种商品的销售记录达到10条,则自动向缺货单中添加一条缺货记录。需要用触发器来实现缺货单的自动维护。程序中的GetTime()获取当前时间。

  CREAT ( h ) OOS TRG AFTER ( i ) ON SALES ON SALES

  REFERENCING new row AS nrow FOREACHROW

  FOR EACH ROW

  BEGIN

  INSERT INTO OOS

  SELECT SALES.VENno ( j ) Get Time()

  FROM SALES

  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(*) AND mod(count(*),10)=0;

  END

暂无

问题4(3.0分)

  查询当天销售最多的商品编号、品牌和数量。程序中的GetDate()获取当天日期。

  SELECT GOODS.Gno,Brand,( k )

  FROM GOODS,SALES

  WHERE GOODS.Gno=SALES.GNo AND  SDATE=GetDate()

  GROUP BY ( l )

  HAVING ( m ) ( SELECT count(*)

  FORM SALELS

  WHERE SDATE=GETDATE()

  GROUP BY GNO );

暂无

问题5(2.0分)

  查询一件都没有售出的所有商品编号和品牌。

  SELECT GNo,BRAND

  FROM GOODS

  WHERE GNo ( n )

  SELECT DISTINCT GNo

  FROM ( o )

暂无
广告位
试题标签
难度评价
  • 容易 0%
  • 中等 0%
  • 偏难 0%