列表

详情


设员工关系Emp(E_no,E_name,E_sex,D_name,E_age,E_Add) ,关系Emp中的属性分别表示员工的员工号、姓名、性别、所在部门、年龄和通信地址;其中 D_name是部门关系Dept的主键。查询各个部门员工的最大年龄、最小年龄,以及最大年龄与最小年龄之间年龄差的SQL 语句如下:
SELECT  D_name,MAX(E_age) ,MIN(E_age) ,(  )
FROM Emp
(  );

第 1 问

A. MAX(E_age)-MIN(E_age) IN年龄差

B. 年龄差IN MAX(E_age)-MIN(E_age)

C. MAX(E_age)-MIN(E_age) AS年龄差

D. 年龄差 AS MAX(E_age)-MIN(E_age)

第 2 问

A. GROUP BY E_name

B. GROUP BY D_name

C. ORDER BY E_name

D. ORDER BY D_name

参考答案: C B

详细解析:

本题考查 SQL 语言应用知识。
试题(61)的正确答案为C。SQL 用 AS子句为关系和属性指定不同的名称或别名,
以增加可读性,其格式为:Old-name AS New-nam。其中,Old-name 表示原关系名或属性名,New-name 表示新关系名或属性名。选项A和选项B是错误的,因为 "IN" 的功能是判断是否在集合中。选项D是错误的,因为AS的格式使用不对。
试题(62)的正确答案为B。GROUP BY子句可以对元组进行分组,保留字GROUP BY后面跟着一个分组属性列表。题中的语句是将Emp关系的元组重新组织,并进行分组使得同一个部门的元组被组织在一起,然后分别求出每个部门最大年龄的员工与最小年龄的员工之间的年龄差值。
根据以上分析,完整的 SQL 语句如下:
SELECT D_name,MAX(E_age),MIN(E_age),MAX(E_age)-MIN(E_age)AS 年龄差
FROM Emp
GROUP BY D_name;

上一题