设有一个关系EMP(职工号,姓名,部门名,工种,工资),查询各部门担任“钳工”的平均工资的SELECT语句为: SELECT部门名,AVG(工资)As平均工资 FROM EMP GROUP BY(19) HAVING工种=‘钳工’(2007年5月试题19)
【正确答案】
C
【答案解析】解析:本题考查SOL的基础知识。 SQL是介于关系代数与关系演算之间的结构化查询语言,它可以进行数据操作、数据定义和数据控制。 使用SELECT语句进行数据查询是数据库中的核心操作。 简单查询的语句格式为: SELECT [ALL|DISTINCT] select_list FROM table_name 其中,select_list中用*表示当前或视图的所有列;用table_name*表示指定表或视图的所有列;用column_name1[[AS]column_title1],column_name2[[AS]column_title2][,…]或者用[column_titlel=]column_name1[,column_title2=]column_name2[,…]表示指定列并更改列标题。ALL和DISTINCT是SELECT语句中的可选项,用于在查询结果中消除重复行。如果想在指定的列中检索单一记录,可以使用“DISTINCT”关键字,因为DISTINCT将会丢弃SELECT指定列的重复记录;如果需要显示结果表中的重复行,可以指定“ALL”,意为保留结果表中的所有行。 GROUP BY子句与HAVING子句的格式为: SELECT column_namel,column_name2[,…n] FROM table_name WHERE search_condition GROUP BY group_by_expression HAVING search_condition GROUP BY子句将查询结果按分组选项的值(group_by_expression)进行分组,该属性列相等的记录为一个组。通常,在每组中通过集合函数来计算一个或者多个列。如果GROUP BY子句带有HAVING短语,则只有满足指定条件(search condition)的组才能输出。 使用HAVING子句时,还可以用HAVING子句为分组统计进一步设置统计条件,限制SELECT语句返回的行数。HAVING子句与GROUP BY子句的关系类似于WHERE子句与SELECT子句的关系。HAVING子句应该处于GROUP BY子句之后。 根据题意需要查询不同部门中担任“钳工”的职工的平均工资,第三条语句应该是按“部门名”进行分组,然后再按第四条语句的条件工种=‘钳工’进行选取。正确的语句应该是: SELECT部门名,AVG(工资)AS平均工资 FROM EMP GROUP BY部门名 HAVING工种=‘钳工’