单选题 使用的数据表如下:
图书(图书编号C(6),书名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),还书日期D(8))

单选题 查询作者为“王伟”的所有书名及出版社,正确的SQL语句是
A. SELECT书名,出版社 FROM 图书 WHERE 作者=王伟
B. SELECT书名,出版社 FROM 图书 WHERE 作者="王伟"
C. SELECT书名,出版社 FROM 图书 WHERE "作者"=王伟
D. SELECT书名,出版社 FROM 图书 WHERE "作者"="王伟/
【正确答案】 B
【答案解析】[解析] 在SELECT查询语句中字段名不需要加引号,所以C)和D)选项是错误的;当需要指定字段值时,如果是字符型数据应当用引号将字符型数据引起来,所以A)也是错误的。
单选题 如果要查询所藏图书中,各个出版社图书的最高单价、平均单价和册数,所用的SQL语句是
A. SELECT 出版单位,MAX(单价),AVG(单价),COUNT(*);
FROM 图书;
GROUP BY 出版单位
B. SELECT 出版单位,MAX(单价),AVG(单价),COUNT(*);
FROM 图书;
HAVING 出版单位
C. SELECT 出版单位,MIN(单价),AVG(单价),COUNT(*);
FROM 图书
GROUP BY 出版单位
D. SELECT 出版单位,MIN(单价),AVG(单价),COUNT(*);
FROM 图书;
HAVING 出版单位
【正确答案】 A
【答案解析】[解析] 求各个出版社图书的相关信息,必须用GROUP BY短语对各个出版社进行分组,求最大值函数为MAX(),求最小值函数为MIN(),COUNT()用以计数,HAVING短语必须与GROUP BY短语一起出现,不能单独使用。
单选题 求ABC单位借阅图书的读者人数,正确的命令是
A. SELECT COUNT (DISTINCT借书证号) FROM 借阅 WHERE;
借书证号 IN(SELECT 借书证号 FROM 读者 WHERE 单位="ABC")
B. SELECT SUM(DISTINCT 借书证号)FROM 借阅 WHERE;
借书证号 IN(SELECT 借书证号 FROM 借阅 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的借阅图书的读者。使用DISTINCT短语去掉重复值。
单选题 查询尚未归还书的图书编号和借书日期,正确的SQL语句是
A. SELECT 图书编号,借书日期 FROM 借阅 WHERE 还书日期=""
B. SELECT 图书编号,借书日期 FROM 借阅 WHERE 还书日期=NULL
C. SELECT 图书编号,借书日期 FROM 借阅 WHERE 还书日期 IS NULL
D. SELECT 图书编号,借书日期 FROM 借阅 WHERE 还书日期
【正确答案】 C
【答案解析】[解析] SQL支持空值,同样可以利用空值进行查询。查询空值时要使用IS NULL,而“=NULL”是无效的,因为空值不是一个确定的值,所以不能用“=”这样的运算符进行比较。
单选题 查询“读者”表的所有记录并将结果存放到永久表one中的SQL语句是
A. SELECT * FROM 读者 INTO CURSOR one
B. SELECT * FROM 读者 TO DBF one
C. SELECT * FROM 读者 TO TABLE one
D. SELECT * FROM 读者 INTO TABLE one
【正确答案】 D
【答案解析】[解析] 使用短语INTO DBF|TABLE TableName可以将查询结果存放到永久表中。