【说明】
图书管理系统详细记录图书库存情况、读者信息及读者借阅记录(包括借书日期和还书日期)。
新书入库时要为该书编制图书卡片,包括分类目录号、图书流水号(要保证每本书都有唯一的流水号,即使同类图书也是如此)、书名、作者、内容摘要、价格和购书日期。同一个书名由于版次、作者等不同有可能存在多“种”图书,其间用“分类目录号”区分。
系统为每一位合法读者编制一个唯一的借书证号,读者需要提供姓名、单位。
一个读者最多可以同时借阅5本图书。借阅图书时,新添借阅记录,并将对应的“归还标记”字段置为“false”,表示“尚未归还”;归还图书时,将相应的“归还标记”字段置为“true”,表示“已经归还”。一本书可能供多位读者借阅,同一本书读者可以重复借阅。
如图9-17所示为该系统的E-R图。
【问题3】
若用表Reader存储读者信息,Book表存储图书信息,Borrow表存储借阅情况。
以下SQL语句是“查询证号为12345的读者当前所借阅的图书书名(即尚未归还的图书)”,请补充完整。
SELECT 书名 FROM Book WHERE 流水号 (1)
(SELECT 流水号 FROM (2) WHERE 证号="12345" AND (3) )
以下SQL语句是“查询书名包含‘软件设计师’的图书情况”,请补充完整。
SELECT * FROM Book WHERE 书名 (4) "%软件设计师%\
参考答案:(1)IN (2) Borrow (3) 归还标记="false" (4) LIKE
解析:
[分析]: 空(1)是引出于查询的,该类连接词有:IN、NOT IN、EXISTS、NOT EXISTS,EXISTS引出的子查询一般是SELECT *型,故排除;再据语意分析应填IN。
子查询的语意是“查询当前所借阅的图书流水号(即尚未归还的图书)”,因此应从Borrow表中查询,而且归还标记应为false,故空(2)应填Borrow,空(3)应填:归还标记="false"。
对字符串进行的操作通常是使用操作符LIKE的模式匹配,正符合题意,故空(4)应填“LIKE”。