设学生关系为Students(Sno,Sname,Sex,Sdept,Sage,Sadd),其中Sno、Sname、Sex、Sdept、Sage、Sadd分别表示学生的学号、姓名、性别、所在系、年龄和住址。查询比计算机系(CS)所有学生年龄都小的其他系的学生姓名及年龄的SQL语句为:
SELECT Sname, Sage
FROM Students
WHERE Sage (61)
(SELECT Sage
FROM Students
WHERE (62) )
AND Sdept<>’CS’;
(62)处填()。
A.Sdept=’CS’
B.Sdept<>’CS’
C.’Sdept’=CS
D.’Sdept’<>CS
参考答案:A
解析:
本题考查SQL语句的基本应用。
在SQL中,聚集函数是以值的集合为输入、返回单个值的函数。SQL提供了5个预定义集函数:avg(求平均值)、min(求最小值)、max(求最大值)、sum(求和)以及count(计数)。若使用ANY和ALL谓词,必须同时使用比较运算符,其含义及等价的转换关系见下表。用集函数实现子查询通常要比直接用ALL或ANY查询效率要高。
ANY、ALL谓词含义及等价的转换关系
按照题意,只要在子查询中将所有计算机系学生的年龄查出,在外查询中找出满足条件“其他系比计算机系所有学生年龄都要小”的学生姓名及年龄,因此完整的SQL语句为:
SELECT Sname, Sage
FROM Students
WHERE Sage <ALL
(SELECT Sage
FROM Students
WHERE SD=’CS’)
AND SD<>’CS’;