单选题
(31)~(35)题使用如下表的数据:
部门表
部门号 | 部门名称 |
40 | 家有电器部 |
10 | 电视录摄像机部 |
20 | 电话手机部 |
30 | 计算机部 |
商品表
部门号 | 商品号 | 商品名称 | 单价 | 数量 | 产地 |
40 | 0101 | A牌电网扇 | 200.00 | 10 | 广东 |
40 | 0104 | A牌微波炉 | 350.00 | 10 | 广东 |
40 | 0105 | B牌微波炉 | 600.00 | 10 | 广东 |
20 | 1032 | C牌传真机 | 1000.00 | 20 | 上海 |
40 | 0107 | D牌微波炉_A | 420.00 | 10 | 北京 |
20 | 0110 | A牌电话机 | 200.00 | 50 | 广东 |
20 | 0112 | B牌手机 | 2000.00 | 10 | 广东 |
40 | 0202 | A牌电冰箱 | 3000.00 | 2 | 广东 |
30 | 1041 | B牌计算机 | 6000.00 | 10 | 广东 |
30 | 0204 | C牌计算机 | 10000.00 | 10 | 上海 |
单选题
SQL语句
SELECT部门号,MAX(单价*数量)FROM商品表GROUP BY部门号
查询结果有几条记录?
【正确答案】
C
【答案解析】[解析] 本题中SQL语句的功能是:在商品表中按部门号进行分组,分组后从每个组中查询出单价和数量乘积最大的记录,从原始表中可以看出,表中有3个部门号,所以该SQL执行后应该有3条记录,正确选项为C。
单选题
SQL语句
SELECT产地,COUNT(*)提供的商品种类数;
FROM商品表;
WHERE单价>200;
GROUP BY产地HAVING COUNT(*)>=2;
ORDER BY 2 DESC
查询结果的第一条记录的产地和提供的商品种类数是
【正确答案】
C
【答案解析】[解析] 题目中所写出的SQL语句的功能是:在商品表中查询那些提供的商品单价大于200元,并且提供两种以上商品的产地,并按照提供的商品种类数降序排列,从原始数据表中可以计算出,满足条件的记录为产地为广东,商品种类个数为5,选项C正确。
单选题
SQL语句
SELECT部门表.部门号,部门名称,SUM(单价*数量);
FROM 部门表,商品表;
WHERE 部门表.部门号=商品表.部门号;
GROUP BY 部门表.部门号
查询结果是
【正确答案】
B
【答案解析】[解析] 该语句利用SUM()函数在商品表中查询各部门商品的金额合计,该题涉及多表查询,其执行过程是,从部门表中选取部门号和部门名称以及单价和数量字段,乘积后求和,查询出的记录同时要满足部门号字段和商品表中的部门号相等。GROUP BY后的分组字段是部门号,因此它计算的是各个部门商品金额的合计。
单选题
SQL语句
SELECT 部门表.部门号,部门名称,商品号,商品名称,单价;
FROM 部门表,商品表;
WHERE 部门表.部门号=商品表.部门号;
ORDER BY 部门表.部门号 DESC,单价
查询结果的第一条记录的商品号是
【正确答案】
A
【答案解析】[解析] 该SELECT语句的功能是在部门表和商品表两个表中查询,利用SUM()函数在商品表中查询各部门商品金额合计,并将结果按照部门表中的部门号降序排列,单价字段作为排序的次关键字。因此,所选出记录的商品号应该是0101,选项A是正确答案。
单选题
SQL语句
SELECT 部门名称 FROM 部门表 WHERE 部门号 IN (SELECT部门号,
FROM 商品表 WHERE 单价 BETWEEN 420 AND 1000)
查询结果是
【正确答案】
A
【答案解析】[解析] 该语句的执行过程是,首先在内层查询中查找哪个部门的商品单价在420元和1000元之间,并检索出部门号,然后,在外层查询在部门表中,查找出与之对应的部门名称,因此选项A正确。