单选题
第(34)~(35)题使用的数据表结果如下:
图书(总编号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))
单选题
对于图书管理数据库,求ABC单位借阅图书的读者的人数。 下面SQL语句正确的是( )。
A、
SELECT COUNT(DISTINCT借书证号)FROM借阅WHERE; 借书证号IN(SELECT借书证号FROM读者WHERE单位="ABC")
B、
SELECT SUM(DISTINCT借书证号)FROM借阅WHERE; 借书证号IN(SELECT借书证号FOR借阅WHERE单位="ABC")
C、
SELECT COUNT(DISTINCT借书证号)FROM借阅WHERE; 借书证号IN(SELECT借书证号FROM借阅WHERE单位="ABC")
D、
SELECT SUM(DISTINCT借书证号)FROM借阅WHERE; 借书证号IN(SELECT借书证号FROM读者WHERE单位="ABC")
【正确答案】
A
【答案解析】
[解析] (COUNT命令统计数据表中的记录个数;SUM对数据表中所有数据值字段进行纵向求和。 题目要求显示ABC单位的借阅图书的读者人数,本题使用的是嵌套查询语句,内层查询将单位是“ABC”的读者的借书证号查出来,外层查询根据内层查询的结果通过对借阅库的操作显示出单位为ABC的借阅图书的读者。当然有可能有的读者不止借阅过一次书,所有要在“借书证号”前加DISTINCT命令去掉重复值,求的才是人数,而不是人次数。
单选题
对于图书管理数据库,分别求出各个单位当前借阅图书的读者人次。下面的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命令实现按单位分组查询。
提交答案
关闭