以下两个题使用的数据表结果如下: 图书(总编号C(6),分类号C(8),书名C(16),作者C(6),出版单位C(20),单价N(6,2)) 读者(借书证号C(4),单位C(8),姓名C(6),性别C(2),职称C(6),地址C(20))

admin2012-09-07  33

问题 以下两个题使用的数据表结果如下:
    图书(总编号C(6),分类号C(8),书名C(16),作者C(6),出版单位C(20),单价N(6,2))
    读者(借书证号C(4),单位C(8),姓名C(6),性别C(2),职称C(6),地址C(20))
    借阅(借书证号C(4),总编号C(6),借书日期D(8))
     对于图书管理数据库,分别求出各个单位当前借阅图书的读者人次。下面的SQL语句正确的是(    )。

选项 A、SELECT单位,COUNT(借阅.借书证号)FROM借阅,读者WHERE;
    借阅.借书证号=读者.借书证号ORDER BY单位
B、SELECT单位,COUNT(借阅.借书证号)FROM借阅,读者WHERE;
    借阅.借书证号=读者.借书证号GROUP BY单位
C、SELECT单位,SUM(借阅.借书证号)FROM借阅,读者WHERE;
    借阅.借书证号=读者.借书证号 HAVING单位
D、SELECT单位,SUM(借阅.借书证号)FROM借阅,读者WHERE;
    借阅.借书证号=读者.借书证号GROUP BY单位

答案B

解析 要分别求出各个单位查询借阅图书人的读者人次,而单位信息在读者表中,借阅图书的信息在借阅表中,需要通过共同的借书证号属性把两个表联接起来,即将借阅.借书证号=读者.借书证号置于WHERE短语之后。
    把同借书号所借阅的图书数目都统计在内,所以不需要使用DISTINCT短语去掉重复值;需要按单位统计借阅图书的读者人次,通过GROUP BY命令实现按单位分组查询。
转载请注明原文地址:https://kaotiyun.com/show/V6sp777K
0

最新回复(0)