本题用到下面三个关系表:CARD 借书卡。 CNO 卡号,NAME 姓名,CLASS 班级BOOKS 图书。 BNO 书号,BNAME 书名,AUTHOR 作者,PRICE 单价,QUANTITY 库存册数BORROW 借书记录。 CNO 借书卡号,BNO 书号,RDATE 还书日期备注:限定每人每种书只能借一本;库存册数随借书、还书而改变。要求实现如下15个处理:1.找出借书超过5本的读者,输出借书卡号及所借图书册数。(2分)2.查询借阅了"水浒"一书的读者,输出姓名及班级。(3分)3.查询过期未还图书

题目

本题用到下面三个关系表:

CARD 借书卡。 CNO 卡号,NAME 姓名,CLASS 班级

BOOKS 图书。 BNO 书号,BNAME 书名,AUTHOR 作者,PRICE 单价,QUANTITY 库存册数

BORROW 借书记录。 CNO 借书卡号,BNO 书号,RDATE 还书日期

备注:限定每人每种书只能借一本;库存册数随借书、还书而改变。

要求实现如下15个处理:

1.找出借书超过5本的读者,输出借书卡号及所借图书册数。(2分)

2.查询借阅了"水浒"一书的读者,输出姓名及班级。(3分)

3.查询过期未还图书,输出借阅者(卡号)、书号及还书日期。(3分)

4.查询书名包括"网络"关键词的图书,输出书号、书名、作者。(2分)

5.查询现有图书中价格最高的图书,输出书名及作者。(2分)

6.查询当前借了"计算方法"但没有借"计算方法习题集"的读者,输出其借书卡号,并按卡号降序排序输出。(4分)

7.将"C01"班同学所借图书的还期都延长一周。(2分)

8.从BOOKS表中删除当前无人借阅的图书记录。(2分)

9.在BORROW表上建立一个触发器,完成如下功能:如果读者借阅的书名是"数据库技术及应用",就将该读者的借阅记录保存在BORROW_SAVE表中(注ORROW_SAVE表结构同BORROW表)。(4分)

10.建立一个视图,显示"力01"班学生的借书信息(只要求显示姓名和书名)。(3分)

11.查询当前同时借有"计算方法"和"组合数学"两本书的读者,输出其借书卡号,并按卡号升序排序输出。(3分)


相似考题
参考答案和解析
正确答案:
 
更多“本题用到下面三个关系表:CARD 借书卡。 CNO 卡号,NAME 姓名,CLASS 班级BOOKS 图书。 BNO 书号,BNAME 书名,AUTHOR 作者,PRICE 单价,QUANTITY 库存册数BORROW 借书记录。 CNO 借书卡号,BNO 书号,RDATE 还书日期备注:限定每人每种书只能借一本;库存册数随借书、还书而改变。要求实现如下15个处理:1.找出借书超过5本的读者,输出借书卡号及所借图书册数。(2分)2.查询借阅了"水浒"一书的读者,输出姓名及班级。(3分)3.查询过期未还图书”相关问题
  • 第1题:

    对“图书借阅管理”数据库中的表借阅、loans和图书,建立文件名为myf的表单,标题为“图书借阅浏览”,表单上有三个命令按钮“读者借书查询”、“书籍借出查询”和“关闭”。

    单击“读者借书查询”按钮,查询出02年3月中旬借出的书的所有的读者的“姓名”、“借书证号”和“图书登记号”,同时将查询结果保存在表new中。

    单击“书籍借出查询”按钮,查询借“数据库原理与应用”一书的所有读者的“借书证号”和“借书日期”,结果中含“书名”、“借书证号”和“日期”字段,同时保存在表new2中。单击“关闭”按钮关闭表单。


    正确答案:在命令窗口中输入命令:CREATE FORM myf打开表单设计器通过“表单控件”工具栏向表单添加3个命令按钮。在属性面板中修改表单的Caption属性值“图书借阅浏览”修改3个命令按钮控件的 Caption属性值分别为“读者借书查询”、“书籍借出查询”和“关闭”。 双击各命令按钮分别编写各控件的Click事件代码: ******命令按钮Command1(读者借书查询)的Click事件代码***** SELECT姓名借阅.借书证号loans.图书登记号; FROM loans图书借阅; WHERE loans图书登记号=图书.图书登记号 AND loans.借书证号=借阅.借书证号; AND MONTH(借书日期)=3; AND DAY(借书日期)>=10; AND DAY(借书日期)=20; INTO TABLE new1 **************************************************** ******命令按钮Command2(书籍借出查询)的Click事件代码***** SELECT 书名借书证号借书日期; FROM loans图书; WHERE loans.图书登记号=图书.图书登记号; AND 书名=“数据库原理与应用”; INTO TABLE new2 ************************************************************* ******命令按钮Command3(关闭)的Click事件代码***** Thisform.Release **************************************************** 保存表单完成设计运行表单结果如图3-36所示。
    在命令窗口中输入命令:CREATE FORM. myf,打开表单设计器,通过“表单控件”工具栏向表单添加3个命令按钮。在属性面板中修改表单的Caption属性值“图书借阅浏览”,修改3个命令按钮控件的 Caption属性值分别为“读者借书查询”、“书籍借出查询”和“关闭”。 双击各命令按钮,分别编写各控件的Click事件代码: ******命令按钮Command1(读者借书查询)的Click事件代码***** SELECT姓名,借阅.借书证号,loans.图书登记号; FROM loans,图书,借阅; WHERE loans,图书登记号=图书.图书登记号 AND loans.借书证号=借阅.借书证号; AND MONTH(借书日期)=3; AND DAY(借书日期)>=10; AND DAY(借书日期)=20; INTO TABLE new1 **************************************************** ******命令按钮Command2(书籍借出查询)的Click事件代码***** SELECT 书名,借书证号,借书日期; FROM loans,图书; WHERE loans.图书登记号=图书.图书登记号; AND 书名=“数据库原理与应用”; INTO TABLE new2 ************************************************************* ******命令按钮Command3(关闭)的Click事件代码***** Thisform.Release **************************************************** 保存表单完成设计,运行表单,结果如图3-36所示。 解析:本大题考查的是表单设计,在设计控件属性中,不要将控件的标题和名称属性弄混淆,名称属性是该控件的一个内部名称,而标题属性是用来显示的一个标签名称。程序部分属于SQL的简单联接查询。

  • 第2题:

    阅读以下说明,回答问题1-3。

    在图书馆数据库有三个基本表:书目表Cata(书号Cno、书名Cname、作者Cauthor、出版年Cdate、价格Cprice)、学生表Student(学号Sno、姓名Sname、性别Sgender、专业Sdept)和借书历史表Borrow(所借书号Cno、借书者学号Sno、借书日期Bbdate、还书日期Brdate)。

    请用SQL语句来建立这三个基本表(请注意数据类型的选择)。


    正确答案:CREATE TABLE Cata( Cno INT Cname CHAR(40) Cauthor CHAR(10) Cdate INT Cpriee float ); CREATE TABLE Student( Sno INT Shame CHAR(20) Sgendcr CHAR(2) Sdept CHAR(20) ); CREATE TABLE BORROW( Cno INT Sno INT Bbdate INT: Brdate INT。 );
    CREATE TABLE Cata( Cno INT, Cname CHAR(40), Cauthor CHAR(10), Cdate INT, Cpriee float, ); CREATE TABLE Student( Sno INT, Shame CHAR(20), Sgendcr CHAR(2), Sdept CHAR(20), ); CREATE TABLE BORROW( Cno INT, Sno INT, Bbdate INT: Brdate INT。 );

  • 第3题:

    一个简化的图书馆信息管理系统有以下功能:(1)借书:输入读者借书证,系统检查借书证是否有效;查阅借书文件,检查该读者所借图书是否超过10本,若已达10本,显示信息“已经超出借书数量”,拒借;未达10本,办理借书(检查库存、修改库存信息并将读者借书信息登入借书记录)(2)还书:输入书号和读者号,从借书记录中读出与读者有关的记录,查阅所借日期,如果超过3个月,作罚款处理。否则,修改库存信息与借书记录。(3)查询:可通过借书记录、库存信息查询读者情况、图书借阅情况及库存情况,打印各种统计表。请就以上系统功能画出分层的DFD图,并建立重要条目的数据字典


    参考答案:

  • 第4题:

    以下2题使用如下图书管理数据库:

    图书(总编号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))

    对于图书管理数据库,查询0001号借书证的读者姓名和所借图书的书名。 SQL语句正确的是______。 SELECT姓名,书名FROM借阅,图书,读者WHERE; 借阅.借书证号="0001"AND;

    A.图书.总编号=借阅.总编号 AND 读者.借书证号=借阅.借书证号

    B.图书.分类号=借阅.分类号 AND 读者.借书证号=借阅.借书证号

    C.读者.总编号=借阅.总编号 AND 读者.借书证号=借阅.借书证号

    D.图书.总编号=借阅.总编号 AND 读者.书名=借阅.书名


    正确答案:A
    解析:使用SQL命令进行查询。查询结果出自不同的表,即姓名出自读者表,书名出自图书表,该题是涉及多个表的连接查询。读者和借阅表通过共有属性借书证号进行连接,从而可以获得借阅了图书的读者姓名,图书表和借阅表通过共有属性总编号进行连接,从而可以获得借出图书的书名。由于要进行3个关系即借阅、图书和读者3个表的连接,必须将连接条件放在WHERE短语后面,两个连接条件即“图书.总编号=借阅.总编号”和“读者.借书证号=借阅.借书证号”由AND运算符连接。

  • 第5题:

    查询尚未归还书的图书编号和借书日期,正确的SQIL语句是

    A.sELECT图书编号,借书日期FROM借阅WHERE还书日期=””

    B.SEI正cT图书编号,借书日期FROM借阅WHERE还书日期=NULL

    C.sELECT图书编号,借书日期FROM借阅WHERE还书日期IS NULl。

    D.SELECT图书编号,借书日期FROM借阅WwHERE还书日期


    正确答案:C
    解析:SQL支持空值,同样可以利用空值进行查询。查询空值时要使用ISNULL,而“=NULL”是无效的,因为空值不是一个确定的值,所以不能用“=”这样的运算符进行比较。

  • 第6题:

    A) SELECT借阅过“中国出版社”图书的读者的姓名和所在单位

    A)SELECT姓名,所在单位FROM借书证,图书,借书记录

    WHERE图书.索书号=借书记录.索书号AND

    B)SELECT姓名,所在单位FROM图书,借书证

    WHERE图书.索书号=借书证.借书证号AND出版社="中国出版社"

    C) SELECT姓名,所在单位FROM图书,借书记录

    WHERE图书.索书号=借书记录,索书号AND出版社="中国出版社"

    D) SELECT姓名,所在单位FROM借书证,借书记录

    WHERE借书证.借书证号=借书记录.借书证号AND出版社="中国出版社"


    正确答案:A
    【答案】:A
    【知识点】:SQL语句中如何正确建立表间联系
    【解析】:从数据表中可以看出,所要查询的字段属于“借书证”表和“图书”表,但这两个表没有一个公共字段用以建立两表之间的联系,所以要借用第三个表中的字段建立联系,所以此题要通过这三个表建立查询,故选A。

  • 第7题:

    现有表:读者(读者姓名,读者单位,借书证号) 借阅(借书证号,图书名称,图书作者,出版单位) 从读者表和借阅表中查询借阅了两本及两本以上图书的读者姓名和读者单位,正确的SQL语句是( )。

    A. SELECT读者姓名,读者单位FROM读者WHERE借书证号IN; (SELECT借书证号FROM借阅GROUP BY借书证号HAVING COUNT(*)>=2)

    B. SELECT读者姓名,读者单位FROM读者WHERE借书证号EXISTS; (SELECT借书证号FROM借阅GROUP BY借书证号HAVING COUNT(*)>=2)

    C. SELECT读者姓名,读者单位FROM读者WHERE借书证号IN; (SELECT借书证号FROM借阅GROUP BY借书证号WHERE COUNT(*)>=2)

    D. SELECT读者姓名,读者单位FROM读者WHERE借书证号EXISTS; (SELECT借书证号FROM借阅GROUP BY借书证号WHERE COUNT(*)>=2)


    正确答案:A
    本题考查了SQL查询功能的嵌套查询和分组与计算查询。分组与计算查询中,利用HAVING进一步限定分组的条件。HAVING子句和WHERE子句不矛盾,在查询中是先用WHERE子句限定元组,然后进行分组,最后再用 HAVING子句限定分组。

  • 第8题:

    查询尚未归还书的图书编号和借书日期,正确的SQL语句是( )。

    A.SELECT图书编号,借书日期FROM借阅WHERE还书日期=""

    B.SELECT图书编号,借书日期FROM借阅WHERE还书日期=NULL

    C.SELECT图书编号,借书日期FROM借阅WHERE还书日期IS NULL

    D.SELECT图书编号,借书日期FROM借阅WHERE还书日期


    正确答案:C
    C。【解析】库表中还书默认值为NULL,未还书记录即为还书日期为NULL的记录,条件语句中应为ISNULL。

  • 第9题:

    阅读下列说明和数据流图,回答问题1至问题3。

    说明

    某图书管理系统的主要功能是图书管理和信息查询。对于初次借书的读者,系统自动生成读者号,并与读者基本信息(姓名、单位、地址等)一起写入读者文件。

    系统的图书管理功能分为四个方面:购入新书、读者借书、读者还书以及图书注销。

    1.购入新书时需要为该书编制入库单。入库单内容包括图书分类目录号、书名、作者、价格、数量和购书日期,将这些信息写入图书目录文件并修改文件中的库存总量(表示到目前为止,购入此种图书的数量)。

    2.读者借书时需填写借书单。借书单内容包括读者号和所借图书分类目录号。系统首先检查该读者号是否有效,若无效,则拒绝借书;若有效,则进一步检查该读者已借图书是否超过最大限制数(假设每位读者能同时借阅的书不超过5本),若已达到最大限制数,则拒绝借书;否则允许借书,同时将图书分类目录号、读者号和借阅日期等信息写入借书文件中。

    3.读者还书时需填写还书单。系统根据读者号和图书分类目录号,从借书文件中读出与该图书相关的借阅记录,标明还书日期,再写回到借书文件中,若图书逾期,则处以相应的罚款。

    4.注销图书时,需填写注销单并修改图书目录文件中的库存总量。

    系统的信息查询功能主要包括读者信息查询和图书信息查询。其中读者信息查询可得到读者的基本信息以及读者借阅图书的情况;图书信息查询可得到图书基本信息和图书的借出情况。

    图书管理系统的顶层图如图1-1所示;图书管理系统的第0层DFD图如图1-2所示,其中,加工2的细化图如图1-3所示。

    数据流图1-2中有两条数据流是错误的,请指出这两条数据流的起点和终点。


    正确答案:起点:读者文件 终点:登记读者信息或3 起点:处理查询请求或2 终点:读者文件
    起点:读者文件 终点:登记读者信息或3 起点:处理查询请求或2 终点:读者文件 解析:本题考查的是数据流图方面的基础知识。对这种类型问题求解的关键是要仔细阅读题目,注意解题技巧,从一些常规的入口作为突破口,即利用分层数据流图数据流的平衡原则(即父图和子图(加工图)的一致性)来解题。
    (子图是其父图中某一部分内部的细节图(加工图),它们的输入/输出数据流应该保持一致。子图也是如此,在上一级中有几个数据流,他的子图也一定有同样的数据流。)而且它们的输送方向是一致的(也就是说如果原图有3条进的数据流2条出的,子图同样也是)。
    比较数据流图1-1和数据流图1-2可以得到,图书管理系统的所有输入流和输出流都是正确的,所以可以初步判断是图1-2中从加工2到读者文件的数据流和从读者文件到加工3的数据流是错误的,再分析题目说明:“对于初次借书的读者,系统自动生成读者号,并与读者基本信息(姓名、单位、地址等)一起写入读者文件”,此段说明表示加工3应该向读者文件中写入数据,从“系统首先检查该读者号是否有效,若无效,则拒绝借书”可以得出加工2从读者文件中读取数据。另外,从数据流图1-3可以看出数据流图是从读者文件到读者查询加工。所以错误的数据流是加工2到读者文件和从读者文件到加工3。

  • 第10题:

    设有关系模式:图书借阅(读者号,书号,借书日期,还书日期),其中书号代表唯一的一本书,若允许读者在不同时间借阅同一本书,则此关系模式的主键是()。

    • A、(读者号,图书号)
    • B、(读者号)
    • C、(读者号,图书号,借书日期)
    • D、(读者号,图书号,借书日期,还书日期)

    正确答案:C

  • 第11题:

    单选题
    查询尚未归还书的图书编号和借书日期,正确的SQL语句是(  )。
    A

    SELECT图书编号,借书日期FROM借阅WHERE还书日期=

    B

    SELECT图书编号,借书日期FROM借阅WHERE还书日期=NULL

    C

    SELECT图书编号,借书日期FROM借阅WHERE还书日期IS NULL

    D

    SELECT图书编号,借书日期FROM借阅WHERE还书日期


    正确答案: C
    解析:
    由于还书日期默认为空,一旦读者归还了图书,则还书日期就不再为空,所以可以通过还书日期是否为空来判断是否已还书。SQL利用空值进行查询的判断字段为ISNULL。

  • 第12题:

    单选题
    查询2011年被借过图书的书名、出版社和借书日期,正确的SQL语句是(  )。
    A


    SELECT书名,出版社,借书日期FROM图书,借书记录
    WHERE借书日期=2011 AND图书.索书号=借书记录.索书号

    B


    SELECT书名,出版社,借书13期FROM图书,借书记录
    WHERE借书日期=YEAR(2011)AND图书.索书号=借书记录.索书号

    C


    SELECT书名,出版社,借书日期FROM图书,借书记录
    WHERE图书.索书号=借书记录.索书号AND YEAR(借书日期)=2011

    D


    SELECT书名,出版社,借书日期FROM图书,借书记录图书.索书号=借书记录.索书号AND
    WHERE YEAR(借书日期)=YEAR(2011)


    正确答案: C
    解析:
    考查嵌套查询的知识点。查询2011年被借过的图书信息,在WHERE语句中,条件应为
    图书.索书号=借书记录.索书号AND YEAR(借书日期)=2011。

  • 第13题:

    查询2011年被借过图书的书名、出版社和借书日期,正确的SQL语句是( )。

    A.SELECT书名,出版社,借书日期FROM图书,借书记录 WHERE借书日期=2011 AND图书.索书号=借书记录.索书号

    B.SELECT书名,出版社,借书日期FROM图书,借书记录 WHERE借书日期=YEAR(2011)AND图书.索书号=借书记录.索书号

    C.SELECT书名,出版社,借书日期FROM图书,借书记录 WHERE图书.索书号=借书记录.索书号AND YEAR(借书日期)=2011

    D.SELECT书名,出版社,借书日期FROM图书,借书记录 图书.索书号=借书记录.索书号AND WHERE YEAR(借书日期)=YEAR(2011)


    正确答案:C
    C。【解析】根据题干所要查询的字段为书名、出版社和借书日期,其中涉及的表为图书和借书记录表,其中用图书.索书号和借书记录.索书号进行连接,并且结束日期为2011,其中年要使用YEAR函数,所以答案选择C。

  • 第14题:

    根据以下资料,回答下列各题: 基于图书表、读者表和借阅表三个数据库表,它们的结构如下: 图书(图书编号,书名,第一作者,出版社):图书编号、书名、第一作者和出版社为C型字段,图书编号为主关键字; 读者(借书证号,单位,姓名,职称):借书证号、单位、姓名、职称为C型字段,借书证号 为主关键字; 借阅(借书证号,图书编号,借书日期,还书日期):借书证号和图书编号为C型字段,借书日期和还书日期为D型字段,还书日期默认值为NULL,借书证号和图书证号共同构成主关键字。 查询第一作者为“张三”的所有书名及出版社,正确的SQL语句是( )。

    A.SELECT书名,出版社FROM图书WHERE第一作者=张三

    B.SELECT书名,出版社FROM图书WHERE第一作者="张三"

    C.SELECT书名,出版社FROM图书WHERE"第一作者"=张三

    D.SELECT书名,出版社FROM图书WHERE"第一作者"="张三"


    正确答案:B
    B。【解析】查询条件语句中字段名不能用引号,字段内容为C型的条件值需要用引号。

  • 第15题:

    对于图书管理数据库,查询0001号借书证的读者姓名和所借图书的书名。 SQL语句正确的是 ______。 SELECT姓名,书名FROM 借阅,图书,读者 WHERE; 借阅.借书证号="0001"AND; ______ ______

    A.图书.总编号=借阅.总编号 AND 读者.借书证号=借阅.借书证号

    B.图书.分类号=借阅.分类号 AND 读者.借书证号=借阅.借书证号

    C.读者.总编号=借阅.总编号 AND 读者.借书证号=借阅.借书证号

    D.图书.总编号=借阅.总编号 AND 读者.书名=借阅.书名


    正确答案:A
    解析:使用SQL命令进行查询。查询结果出自不同的表,即姓名出自读者表,书名出自图书表,该题是涉及多个表的连接查询。读者和借阅表通过共有属性借书证号进行连接,从而可以获得借阅了图书的读者姓名,图书表和借阅表通过共有属性总编号进行连接,从而可以获得借出图书的书名,由于要进行3个关系即借阅、图书和读者3个表的连接,必须将连接条件放在WHERE短语后面,两个连接条件即“图书.总编号=借阅.总编号”和“读者.借书证号=借阅.借书证号”由AND运算符连接。

  • 第16题:

    以下题基于图书表、读者表和借阅表三个数据库表,它们的结构如下:

    图书(图书编号,书名,第一作者,出版社):图书编号、书名、第一作者和出版社为c型字段,图书编号为主关键字;

    读者(借书证号,单位,姓名,职称):借书证号、单位、姓名、职称为C型字段,借书证号为主关键字;

    借阅(借书证号,国书编号,借书日期,还书日期):借书证号和图书编号为C型字段,借书日期和还书日期为D型字段,还书日期默认值为NULL,借书证号和图书编号共同构成主关键字。

    查询第一作者为“张三”的所有书名及出版社,正确的SQL语句是

    A.sELECT书名,出版社FROM图书WHERE第一作者=张三

    B.SELECT书名,出版社FROM图书WHERE第一作者=“张三”

    C.sELECT书名,出版社FROM图书WHERE”第一作者“=张三

    D.sELECT书名,出版社FROM图书WHERE”第一作者”=“张三”


    正确答案:B
    解析:查询的基本形式为“SELECT-FROM-WHERE查询块”,多个查询块可嵌套执行。SELECT说明要查询的数据,FROM说明要查询的数据来自哪个或哪些表,wHERE说明查询条件,即选择元组的条件。此处需要注意的是字段值的表示方式,当需要指定某个特定的字段值时,应当用双引号(“”)进行表示,而对于特定的字段,不需加双引号。

  • 第17题:

    设有图书(图书编号,书名,第一作者,出版社.、读者(借书证号,姓名,单位,职称.和借阅(借书证号,图书编号,借书日期,还书日期.三张表,则表借阅的关键字(键或码.为( )。

    A.借书证号,图书编号

    B.图书编号,借书日期

    C.借书日期,还书日期

    D.借书证号,借书日期


    正确答案:A
    在二维表中凡能唯一标识元组的最小属性集称为关键字,关键字具有标识元组、建立元组间联系等重要作用。此题中,(借书证号,图书编号)是表借阅的主键,借书证号、图书编号分别是外键,借书证号是读者表的主关键字,图书编号是图书表的主关键字。

  • 第18题:

    现有表:读者(读者姓名,读者单位,借书证号)借阅(借书证号,图书名称,图书作者,出版单位)查询没有借阅图书的读者的姓名和借书证号,正确的SQL语句是( )。

    A. SELECT姓名FROM读者WHERE NOT EXISTS; (SELECT借书证号FROM借阅WHERE借阅.借书证号=读者借书证号)

    B. SELECT姓名,借书证号FROM读者WHERE (SELECT*FROM借阅WHERE借阅.借书证号=读者.借书证号)。

    C. SELECT姓名,借书证号FROM读者WHERE NOT EXISTS; (SELECT*FROM借阅WHERE借阅.借书证号=读者.借书证号)

    D. SELECT姓名,借书证号FROM读者WHERE借阅=NULL (SELECT*FROM借阅WHERE借阅.借书证号=读者.借书证号)


    正确答案:C
    谓词EXISTS用来检验在子查询中是否有结果返回,本题中内层查询引用了外层查询的表,所以是内外层相关嵌套查询。

  • 第19题:

    连编后可以脱离Visual FoxPro独立运行的程序是 ______。

    以下2题使用如下图书管理数据库:

    图书(总编号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))

    对于图书管理数据库,查询0001号借书证的读者姓名和所借图书的书名。 SQL语句正确的是______。 SELECT姓名,书名FROM借阅,图书,读者WHERE; 借阅.借书证号="0001" AND;

    A.图书.总编号=借阅.总编号AND读者.借书证号=借阅.借书证号

    B.图书.分类号=借阅.分类号AND读者.借书证号=借阅.借书证号

    C.读者.总编号=借阅.总编号AND读者.借书证号=借阅.借书证号

    D.图书.总编号=借阅.总编号AND读者.书名=借阅.书名


    正确答案:A
    解析:使用SQL命令进行查询。查询结果出自不同的表,即姓名出自读者表,书名出自图书表,该题是涉及多个表的连接查询。读者和借阅表通过共有属性借书证号进行连接,从而可以获得借阅了图书的读者姓名,图书表和借阅表通过共有属性总编号进行连接,从而可以获得借出图书的书名。由于要进行3个关系即借阅、图书和读者3个表的连接,必须将连接条件放在WHERE短语后面,两个连接条件即“图书.总编号=借阅.总编号”和“读者.借书证号=借阅.借书证号”由AND运算符连接。

  • 第20题:

    查询所有借阅过“中国出版社”图书的读者的姓名和所在单位( )。

    A.SELECT姓名,所在单位FROM借书证,图书,借书记录 WHERE图书.索书号=借书记录.索书号AND 借书证.借书证号=借书记录.借书证号AND出版社=”中国出版社”

    B.SELECT姓名,所在单位FROM图书,借书证 WHERE图书.索书号=借书证.借书证号AND出版社=”中国出版社”

    C.SELECT姓名,所在单位FROM图书,借书记录 WHERE图书.索书号=借书记录.索书号AND出版社=”中国出版社”

    D.SELECT姓名,所在单位FROM借书证,借书记录 WHERE借书证.借书证号=借书记录.借书证号AND出版社=”中国出版社”


    正确答案:A
    A。【解析】题干中要查询借书人的单位和姓名,要用到3个表,其中图书表和借书记录表通过字段索书号进行连接,借书证表和借书记录表通过借书证号连接,同时借阅的是“中国出版社”,所以出版社=”中国出版社”,所以答案选择A。

  • 第21题:

    设有图书管理数据库:
    图书(总编号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))
    对于图书管理数据库,查询0001号借书证的读者姓名和所借图书的书名。
    SQL语句正确的是( )。
    SELECT姓名,书名FROM借阅,图书,读者WHERE:;
    借阅.借书证号=“0001”AND; .

    A.图书.总编号=借阅.总编号AND;读者.书名=借阅.书名
    B.图书.分类号=借阅.分类号AND;读者,借书证号=借阅.借书证号
    C.读者.总编号=借阅.总编号AND;读者,借书证号=借阅.借书证号
    D.图书,总编号=借阅.总编号AND;读者.借书证号=借阅,借书证号

    答案:D
    解析:
    对于图书管理数据库,查询0001号借书证的读者姓名和所借图书的书名SQL语句正确的是:SELECT姓名,书名FROM借阅,图书,读者WHERE借阅,借书证号:“0001”AND图书.总编号=借阅.总编号AND;读者,借书证号=借阅.借书证号。

  • 第22题:

    设有描述学生借书情况的关系模式:借书(书号,读者号,借书日期,还书日期),设一个读者可在不同日期多次借阅同一本书,但不能在同一天对同一本书借阅多次。该关系模式的主码是()。

    • A、书号
    • B、(书号,读者号)
    • C、(书号,读者号,借书日期)
    • D、(书号,读者号,借书日期,还书日期)

    正确答案:C

  • 第23题:

    单选题
    查询所有借阅过“中国出版社”图书的读者的姓名和所在单位的SQL语句是(  )。
    A


    SELECT姓名,所在单位FROM借书证,图书,借书记录WHERE图书.索书号=借书记录.索书号
    AND借书证.借书证号=借书记录.借书证号AND出版社=中国出版社

    B


    SELECT姓名,所在单位FROM图书,借书证WHERE图书.索书号=借书证.借书证号
    AND出版社=中国出版社

    C


    SELECT姓名,所在单位FROM图书,借书记录WHERE图书.索书号=借书记录.索书号
    AND出版社=中国出版社

    D


    SELECT姓名,所在单位FROM借书证,借书记录
    WHERE借书证.借书证号=借书记录.借书证号AND出版社=中国出版社


    正确答案: C
    解析:
    从数据表中可以看出,所要查询的字段包括“姓名”和“所在单位”两个字段,这两个字段都属于“借书证”表,查询的条件是所有借阅过“中国出版社”图书的读者姓名和所在单位,又涉及了“出版社”字段,此字段位于“图书”表中,但不能从“借书证”表和“图书”表这两个表中查询,因为这两个表没有一个公共字段用以建立两表之间的联系,所以要借用借书记录中的字段建立联系,进而通过这三个表建立查询。借阅过“中国出版社”图书的读者的WHERE条件的表达式为:
    图书.索书号=借书记录.索书号AND借书证.借书证号=借书记录.借书证号AND出版社="中国出版社"