计算机三级数据库技术(高级数据查询)机试模拟试卷4
选择题
1.设有购买表(顾客号,商品号,购买时间)。现要查询顾客A与顾客B购买的相同商品。有下列查询语句:
Ⅰ.SELECT商品号FROM购买表WHERE顾客号=‘A’
AND商品号IN(
SELECT商品号FROM购买表WHERE顾客号=‘B’)
Ⅱ.
SELECT商品号FROM购买表WHERE顾客号=‘A’
EXCEPT
SELECT商品号FROM购买表WHERE顾客号=‘B’
Ⅲ.
SELECT商品号FROM购买表WHERE顾客号=‘A’
INTERSECT
SELECT商品号FROM购买表WHERE顾客号=‘B’
Ⅳ.
SELECT商品号FROM购买表WHERE顾客号=‘A’
UNION
SELECT商品号FROM购买表WHERE顾客号=‘B’
上述语句中,能够实现该查询要求的是( )(B)
A. 仅Ⅰ和Ⅱ
B. 仅Ⅰ和Ⅲ
C. 仅Ⅰ和Ⅳ
D. 仅Ⅲ
解析:SQL中的集合操作符IN、EXCEPT、INTERSECT和UNION的用法分别为:①IN,确定给定的值是否与子查询或列表中的值相匹配,选择与列表中的任意一个值匹配的行;②EXCEPT,指在第一个集合中存在,但是不存在于第二个集合中的数据;③INTERSECT,是指在两个集合中都存在的数据;④UNION,操作符用于合并两个或多个SELECT语句的结果集,对于UNION操作符,请注意,UNION内部的SELECT语句必须拥有相同数量的列。列也必须拥有相似的数据类型。同时,每条SELECT语句中的列的顺序必须相同。要返回A和B相同的商品,则选项Ⅰ中先查出B购买的商品号,并且使用N操作符,查出A购买的商品号且该商品号同时也在B购买的商品号结果集中,即满足了A和B都购买的商品号,符合要求。选项Ⅱ中的EXCEPT操作符使得查询出的结果为A购买的商品减去B购买的商品,不符合要求。选项Ⅲ的INTERSECT操作符表示两个结果集都存在的商品号,即既属于A又属于B的商品号,符合要求。选项Ⅳ中的UNION操作符表示两个结果集的合并,即包括A购买的商品也包括B购买的商品,不符合要求。
2.在SQL Server 2008中,设有职工表(职工号,姓名,所在部门,工资),现要查询工资总和最高的前3个部门。下列查询语句中正确的是( )。(D)
A. SELECT TOP 3所在部门, COUNT(工资)FROM职工表
GROUP BY所在部门
ORDER BY COUNT(工资)
B. SELECT TOP 3所在部门, COUNT(工资)FROM职工表
GROUP BY所在部门
ORDER BY COUNT(工资)DESC
C. SELECT TOP3所在部门,SUM(工资)FROM职工表
GROUPBY所在部门
ORDER BY SUM(工资)
D. SELECT TOP 3所在部门, SUM(工资)FROM职工表
GROUP BY所在部门
ORDER BY SUM(工资)DESC
解析:本题考查的是COUNT()函数和SUM()函数的使用。
COUNT()函数是用于统计元组个数或者一列中值的个数,而SUM()用来计算一列值的总和。故选择D选项。
3.在SQL Server 2008中,设有商品表(商品号,商品名,类别),现要查询与“冰箱”类别相同的其他商品的商品名。下列语句中最符合该查询要求的是( )。(C)
A. SELECT T1.商品名FROM商品表T1 JOIN商品表T2
ON T1.类别=T2.类别
WHERE T1.商品名=‘冰箱’
B. SELECT T1.商品名FROM商品表T1 JOIN商品表T2
ON T1.类别=T2.类别
WHERE T2.商品名=‘冰箱’
C. SELECT T1.商品名FROM商品表T1 JOIN商品表T2
ON T1.类别=T2.类别
WHERE T2.商品名=‘冰箱’ AND T1.商品名!=‘冰箱’
D. SELECT T1.商品名FROM商品表T1 JOIN商品表T2
ON T1.类别=T2.类别
WHERE T1.商品名=‘冰箱’AND T2.商品名!=‘冰箱’
解析:本题考查自连接与INNER(INNER可省略)JOIN……ON语句的应用。
如果连接操是一个表与其自己进行连接,称为表的自身连接。语法格式:SELECT查询内容FROM表名表别名1,表名别名2……
(INNER,可省略)JOIN……ON语法格式:需要连接的表1 JOIN需要连接的表2 ON连接的条件。
本题中需要查询的是与”冰箱”类别相同的其他商品的商品名,因此可以排除A、B两项;D项中,WHERE子句语法错误。故答案为C项。
4.设在SQL Server 2008某数据库中有图书表(书号,书名,出版日期,单价),其中“书号”是主码。现要查询2015年1月份出版的单价最高的前三本图书的详细信息。下列查询语句中能正确完成该查询要求的是( )。(C)
A. SELECT * TOP 3 FROM图书表
WHERE出版日期BETWEEN ‘2015/1/1’ AND ‘2015/1/31’
ORDER BY单价DESC
B. SELECT TOP 3* FROM图书表
WHERE出版日期BETWEEN#2015/1/1#AND #2015/1/31#
ORDER BY单价DESC
C. SELECT TOP 3 * FROM图书表
WHERE出版日期BETWEEN ‘2015/1/1’ AND ‘2015/1/31’
ORDER BY单价DESC
D. SELECT*TOP 3 FROM图书表
WHERE出版日期BETWEEN#2015/1/1# AND #2015/1/31#
ORDER BY单价DESC
解析:A、D两项的语法格式不正确,TOP 3应该放在*之前,选项B的时间格式不正确。故答案为C项。
5.设有职工表(职工号,姓名,所在部门,工资),现要查询工资最高的职工(可能有多个)所在部门的所有职工的职工号和姓名。下列查询语句中正确的是( )。(A)
A. SELECT职工号,姓名FROM职工表
WHERE所在部门IN(
SELECT所在部门FROM职工表WHERE工资IN(
SELECT MAX(工资)FROM职工表))
B. SELECT职工号,姓名FROM职工表
WHERE所在部门=(
SELECT所在部门FROM职工表WHERE工资=(
SELECT MAX(工资)FROM职工表))
C. SELECT职工号,姓名FROM 职工表
WHERE所在部门=(<
本文档预览:3600字符,共12859字符,源文件无水印,下载后包含无答案版和有答案版,查看完整word版点下载