填空题 下列各题基于图书表、读者表和借阅表三个数据库表,它们的结构如下:
图书(图书编号,书名,第一作者,出版社):图书编号、书名、第一作者和出版社为C型字段,图书编号为主关键字;
读者(借书证号,单位,姓名,职称):借书证号、单位、姓名、职称为C型字段,借书证号为主关键字;
借阅(借书证号,图书编号,借书日期,还书日期):借书证号和图书编号为c型字段,借书日期和还书日期为D型字段,还书日期默认值为NULL,借书证号和图书编号共同构成主关键字。

单选题 查询第一作者为“张三”的所有书名及出版社,正确的SQL语句是______。
A. SELECT 书名,出版社 FROM 图书 WHERE 第一作者=张三
B. SELECT 书名,出版社 FROM 图书 WHERE 第一作者=“张三”
C. SELECT 书名,出版社 FROM 图书 WHERE “第一作者”=张三
D. SELECT 书名,出版社 FROM 图书 WHERE “第一作者”=“张三”
【正确答案】 B
【答案解析】[解析] 本题考查的知识点是SQL查询。在SQL语句中,字段名不需要加引号,字段的取值则需要加引号。即本题的答案为B。
单选题 查询尚未归还书的图书编号和借书日期,正确的SQL语句是______。
A. SELECT 图书编号,借书日期 FROM 借阅 WHERE 还书日期=""
B. SELECT 图书编号,借书日期 FROM 借阅 WHERE 还书日期=NULL
C. SELECT 图书编号,借书日期 FROM 借阅 WHERE 还书日期 IS NULL
D. SELECT 图书编号,借书日期 FROM 借阅 WHERE 还书日期
【正确答案】 C
【答案解析】[解析] 本题考查的知识点是SQL查询。由于还书日期默认为空,一旦读者归还了图书,则还书日期就不再为空,所以可以通过还书日期是否为空来判断是否已还书,而判断字段是否为空用IS NULL。即本题的答案为C。
单选题 查询“读者”表的所有记录并存储于临时表文件one中的SQL语句是______。
A. SELECT * FROM 读者 INTO CURSOR one
B. SELECT * FROM 读者 TO CURSOR one
C. SELECT * FROM 读者 INTO CURSOR DBF one
D. SELECT * FROM 读者 TO CURSOR DBF one
【正确答案】 A
【答案解析】[解析] 本题考查的知识点是临时表。将查询结果存入临时表需要用到“INTO CURSOR临时表表名”。所以只有A选项符合要求。即本题的答案为A。
单选题 查询单位名称中含“北京”字样的所有读者的借书证号和姓名,正确的SQL语句是______。
A. SELECT 借书证号,姓名 FROM 读者 WHERE 单位="北京%"
B. SELECT 借书证号,姓名 FROM 读者 WHERE 单位="北京*"
C. SELECT 借书证号,姓名 FROM 读者 WHERE 单位 LIKE"北京*"
D. SELECT 借书证号,姓名 FROM 读者 WHERE 单位 LIKE"%北京%/
【正确答案】 D
【答案解析】[解析] 本题考查的知识点是LIKE用法。LIKE用于模糊查询,它有两个通配符“%”和“_”,其中“%”可以和任意多个字符匹配,而“_”则只能与一个匹配,根据题中要求只有D选项符合。即本题的答案为D。
单选题 查询2009年被借过书的图书编号和借书日期,正确的SQL语句是______。
A. SELECT 图书编号,借书日期 FROM 借阅 WHERE 借书日期=2009
B. SELECT 图书编号,借书日期 FROM 借阅 WHERE year(借书日期)=2009
C. SELECT 图书编号,借书日期 FROM 借阅 WHERE 借书日期=year(2009)
D. SELECT 图书编号,借书日期 FROM 借阅 WHERE year(借书日期)=year(2009)
【正确答案】 B
【答案解析】[解析] 本题考查的知识点是SQL中日期的用法。在SQL语言中,可以用year函数对DATE类型字段取年份,返回类型为整型,所以只有B选项符合要求。即本题的答案为B。
单选题 查询所有“工程师”读者借阅过的图书编号,正确的SQL语句是______。
A. SELECT 图书编号 FROM 读者,借阅 WHERE 职称="工程师"
B. SELECT 图书编号 FROM 读者,图书 WHERE 职称="工程师"
C. SELECT 图书编号 FROM 借阅 WHERE 图书编号=
(SELECT 图书编号 FROM 借阅 WHERE 职称="工程师")
D. SELECT 图书编号 FROM 借阅 WHERE 借书证号 IN
(SELECT 借书证号 FROM 读者 WHERE 职称="工程师")
【正确答案】 D
【答案解析】[解析] 本题考查的知识点是嵌套查询。题中要求查询所有“工程师”读者借阅过的图书编号,则只需借阅表中的借书证号满足一定范围即可,而这个范围就是读者表中所有职称为“工程师”的读者的借书证号。查询某个字段在某个范围内需要用IN,即本题的答案为D。