列表

详情


某销售公司数据库的零件P(零件号,零件名称,供应商,供应商所在地,单价,库存量)关系如表1所示,其中同一种零件可由不同的供应商供应,一个供应商可以供应多种零件。零件关系的主键为 (  ) ,该关系存在冗余以及插入异常和删除异常等问题。为了解决这一问题需要将零件关系分解为 (  ) 。


对零件关系P,查询各种零件的平均单价、最高单价与最低单价之间差价的SQL语句为:  

SELECT   零件号,   (  ) 

FROM    P 

 (  )  ;

对零件关系 P,查询库存量大于等于 100 小于等于 500 的零件“P1”的供应商及库存量,要求供应商地址包含“西安” 。实现该查询的SQL语句为:

SELECT 零件名称,供应商名,库存量

FROM    P

WHERE (  )  AND (  )    ;

第 1 问

A. 零件号,零件名称

B. 零件号,供应商

C. 零件号,供应商所在地

D. 供应商,供应商所在地

第 2 问

A. P1(零件号,零件名称,单价) 、P2(供应商,供应商所在地,库存量)

B. P1(零件号,零件名称) 、P2(供应商,供应商所在地,单价,库存量)

C. P1(零件号,零件名称) 、P2(零件号,供应商,单价,库存量)、P3(供应商,供应商所在地)

D. P1(零件号,零件名称)、P2(零件号,单价,库存量)、P3(供应商,供应商所在地)、P4(供应商所在地,库存量)

第 3 问

A. 零件名称,AVG(单价),MAX(单价)− MIN(单价)

B. 供应商,AVG(单价),MAX(单价)− MIN(单价)

C. 零件名称,AVG 单价,MAX 单价− MIN 单价

D. 供应商,AVG 单价,MAX 单价 − MIN 单价

第 4 问

A. ORDER BY 供应商

B. ORDER BY 零件号

C. GROUP BY 供应商

D. GROUP BY 零件号

第 5 问

A. 零件名称= ‘P1’ AND库存量Between 100 AND 500

B. 零件名称= ‘P1’ AND库存量Between 100 TO 500

C. 零件名称= ‘P1’ OR库存量Between 100 AND 500

D. 零件名称= ‘P1’ OR库存量Between 100 TO 500

第 6 问

A. 供应商所在地in ‘%西安%’

B. 供应商所在地like ‘__西安%’

C. 供应商所在地like ‘%西安%’

D. 供应商所在地like ‘西安%’

参考答案: B C A D A C

详细解析:

本题考查的是数据库及SQL方面的基础知识。
第一空的正确选项为B。根据题意,零件P关系中的零件号和供应商能唯一确定该关系中的每一个元组。
第二空的正确选项为C。因为原零件关系存在非主属性对码的部分函数依赖:(零件号,供应商)、供应商所在地,但是供应商、供应商所在地,故原关系模式零件不是2NF的。分解后的关系模式零件1,零件2和零件3消除了非主属性对码的部分函数依赖,同时不存在传递依赖,故达到3NF。
第三空的正确选项为A,第四空的正确选项为D。要查询各种零件的平均单价、最高单价与最低单价之间差跟,首先需要在结果列中的空(3)应填写“零件名称,AVG(单价),MAX(单价)−MIN(单价)”。其次必须用分组语句按零件号分组,故空(4)应填写“GROUP BY零件号”。完整的SQL语句为:
SELEC丁零件号,零件名称, AVG〔单价), MAX(单价)-MIN(单价)
FROM P
GROUP BY零件号;
第五空的正确选项为A,第六空的正确选项为C。根据题意,查询库存量大于等于100小于等于500的零件“P1”的供应商及库存量的SQL语句应该采用“Between 100 AND 500 ”,而要求供应向地址包含“西安”的供应商名的SQL语句应该采用“like%西安%”。实现该查询的完整的SQL语句为:
SELECT零件名称,供应商名,库存量
FROM P
WHERE零件名称=‘P1’ AND 库存量Between 100 AND 500
AND 供应商所在地=‘like%西安%’;

上一题