数据库系统工程师认证之二_SQL应用与数据库操作_试题实例

  • 格式:pdf
  • 大小:339.08 KB
  • 文档页数:17

下载文档原格式

  / 17
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

《数据库系统工程师》认证近年试题实例

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字以内的文字简要说明。