问题 单项选择题

在关系代数运算中,关系S,SP和R如表7-11~表7-13所示。若先 (29) ,则可以从 S和SP获得R。其对应的关系表达式为 (30) 。如下的SQL语句可以查询销售总量大于 1000的部门号。Select部门名From S

Where部门号in(Select部门号From SP Group by (31) )关系表S关系表SP关系表R

表7-11 关系表S

表7-12关系表SP

表7-13 关系表R

(31)处填()。

A.部门号where sum(销售量)>1000

B.部门号having sum(销售量)>1000

C.商品号where sum(销售量)>1000

D.商品号having sum(销售量)>1000

答案

参考答案:B

解析:

表S是部门名与部门号对应关系,表SP是各部门号各种商品销售量,表R是部门名为“家电部”的各种商品销售量,且不含部门号一列。显然必须进行连接、选择以及投影。故(29)只有B选项满足,亦不难验证,确实可得表R。(30)只不过将(29)符号化,自然答案也是B。

SQL的查询语句SELECT的完整句法如下:SELECT目标表的列名或列表达式FROM基本表式(和)视图序列[WHERE行条件表达式)[GROUP BY列名序列[HAVING组条件表达式]][ORDER BY列名[序]…)。[]表示可选。其语意为:从FROM子句列出的表中,选取满足WHERE子句给出的条件表达式的元组,然后按GROUP子句中指定列的值分组,再提取满足HAVING子句组条件表达式的那些组,按SELECT子句中给出的列名或列表达式求值输出。 ORDER子句是对输出的目标表进行排序,可附加说明ASC(升序)或DESC(降序)。本题中,应该按部门号分组,组条件表达式用HAVING。所以空(31)的答案选B。

单项选择题
单项选择题 A1/A2型题