单选题
设有一个关系Student(学号,姓名,系名,课程号,成绩),查询至少选修了四门课程的学生学号、姓名及平时成绩的SELECT语句应该是:
SELECT学号,姓名,AVG(成绩) AS平均成绩 FROM
Student GROUP BY{{U}} (1) {{/U}}
HAVING{{U}} (2) {{/U}} |
【正确答案】
B
【答案解析】[分析]
此题考查SQL语句中GROUP子句的应用。题目要求查询至少选修了四门课程的学生学号,这里很明显应按学号分组,然后统计每组中包含的课程号数量,也就是学生的选修课程数,所以此题答案应为A,B。此外第二问的A选项是一个陷阱,此题中COUNT(DISTINCT学号)的值永远为1,因为按学号分组以后,每个组中多条记录的学号是相同的,用DISTINCT将重复学号去掉以后,统计出来的结果只能是1,显然不正确。
【正确答案】
B
【答案解析】本题考查的是关系数据库的关系代数查询语言和SQL查询语言。
试题(1)分析:关系R包含的是“家电部”销售的商品号和销售量,这些信息来源于关系S和SP,需要对这两个关系进行连接运算。
对于答案A:结果中包含部门号,不正确。
对于答案C、D:笛卡儿积会产生无意义的元组,不正确。
本题正确答案为B:通过选择运算取得“家电部”关系,与SP自然连接,投影用于去除部门号。
【正确答案】
C
【答案解析】对于答案A:结果中包含部门号,不正确。
对于答案B:结果中包含的是“部门号”、“商品号”、“销售量”,不正确。
对于答案D:使用笛卡儿积会产生无意义的元组,不正确。
【正确答案】
B
【答案解析】查询销售总量大于1000的部门名,需要根据部门号进行分组,在组内使用集函数sum统计每个部门的销售总量。对分组进行选择使用having短语,不能使用where子句,后者作用于整个表或视图。