数据库系统工程师认证之二_SQL应用与数据库操作_试题实例
- 格式:pdf
- 大小:339.08 KB
- 文档页数:17
《数据库系统工程师》认证近年试题实例
By jhsun
厦门理工学院计算机科学与技术系
目录
2012年软考数据库系统工程师试题 (3)
2011年软考数据库系统工程师试题 (6)
【参考答案】 (8)
2010年软考数据库系统工程师试题 (9)
【参考答案】 (11)
2009年软考数据库系统工程师试题 (12)
【参考答案】 (13)
2008年软考数据库系统工程师试题 (15)
试题二(共15分) (15)
【参考答案】 (17)
2012年软考数据库系统工程师试题
阅读下列说明,回答问题1至问题5,将解答填入答题纸的对应栏内。[说明]
某企业网上销售管理系统的数据库部分关系模式如下所示:
客户(客户号,姓名,性别,地址,邮编)
产品(产品号,名称,库存,单价)
订单(订单号,时间,金额,客户号)
订单明细(订单号,产品号,数量)
关系模式的主要属性及约束如表2-1所示。
表2-1关系模式的主要属性及约束关系名约束
客户客户号唯一标识一位客户,客户性别取值为“男”或者“女’产品产品号唯一标识一个产品
订单订单号唯一标识一份订单。一份订单必须且仅对应一位客户,一份订单可由一到多条订单明细组成。一位客户可以有多份订单。
订单明细一条订单明细对应一份订单中的一个产品
客户、产品、订单和订单明细关系及部分数据分别如表2-2、2-3、2-4、2-5所示。
表2-2客户关系
客户号姓名性别地址邮编
Ol 王晓丽女南京路2号200005
02 林俊杰男北京路18号200010
表2-3产品关系
产品号名称库存单价
01 产品A 20 298.00
02 产品B 50 168.00
表2-4订单关系
订单号时间金额
客户
号
1001 2006.02.03 1268.00 01 1002 2006.02.03 298.00 02 表2-5订单明细关系订单号产品号数量1001 01 2 1001 02 4 1002 01 1
[问题1](3分)
以下是创建部分关系表的SQL语句,请将空缺部分补充完整。
CREATE TABLE 客户(
客户号CHAR(5)___ NOT NULL UNIQUE ___
姓名CHAR(30),
性别CHAR(2)___ CHECK(VALUE IN('男','女'))___
地址CHAR(30),
邮编CHAR(6));
CREATE TABLE 订单(
订单号CHAR(4),
时间 CHAR(10),
金额 NUMBER(6,2),
客户号 CHAR(5) NOT NULL,
PRIMARY KEY(订单号),
___ FOREIGN KEY(客户号) REFERENCES 客户(客户号)___;
[问题2](4分)
请根据如下查询语句,回答问题(d),(e)和(f)
SELECT 客户号
FROM 订单,订单明细
WHERE 订单明细.订单号 = 订单.订单号
AND 产品号 = '02’
AND 数量>10;
(d)上述查询语句的功能是什么?请简要回答。(30个字以内)
答:查询一次订购(或购买)产品号为02的数量大于10的客户号
(e)将上述查询语句转换成对应的关系代数表达式。
答:π客户号(订单∞σ产品号='02'^数量>10(订单明细))
(f)上述SQL查询语句是否可以进一步优化?如可以,给出优化后的SQL查询语句。
可以优化。优化的SQL语句为:
SELECT客户号
FROM订单
WHERE订单号IN
(SELECT 订单号
FROM 订单明细
WHERE 产品号 = '02 ' AND数量>10)
请按题意将下述SQL查询语句的空缺部分补充完整。
[问题3](3分)
按客户购买总额的降序,输出每个客户的客户名和购买总额。
SELECT 客户.客户名,___ SUM(金额)AS总额___
FROM 客户,订单
WHERE 客户.客户号 = 订单.客户号
_ GROUP BY 客户.客户号___
_ ORDER BY 总额 DESC ___;
[问题4](3分)
用SQL语句完成下述要求。
(1)定义一个描述订单的客户号和对应订单明细中产品号关系的视图,客户产品(客户号,产品号)。
CREATE VIEW 客户产品
AS(SELECT 客户号,产品号
FROM 订单,订单明细
WHERE 订单明细.订单号=订单.订单号)
(2)借助(1)所定义的视图,查询至少购买了01号客户购买的所有产品的客户号。
SELECT 客户号
FROM 客户产品客户产品1
WHERE___ NOT EXISTS ___
( SELECT*
FROM客户产品客户产品2
WHERE___客户号='01' AND NOT EXISTS ___
( SELECT*
FROM客户产品客户产品3
WHERE 客户产品1.客户号=客户产品3.客户号
AND客户产品2.产品号=客户产品3.产品号));
[问题5](2分)
当—个订单和对应的订单明细数据入库时,应该减少产晶关系中相应的产品库存,为此应该利用数据库管理系统的什么机制实现此功能?请用100字以内的文字简要说明。