数据库sql课后练习题及答案解析.docx

上传人:b****7 文档编号:11019068 上传时间:2023-02-24 格式:DOCX 页数:15 大小:167.61KB
下载 相关 举报
数据库sql课后练习题及答案解析.docx_第1页
第1页 / 共15页
数据库sql课后练习题及答案解析.docx_第2页
第2页 / 共15页
数据库sql课后练习题及答案解析.docx_第3页
第3页 / 共15页
数据库sql课后练习题及答案解析.docx_第4页
第4页 / 共15页
数据库sql课后练习题及答案解析.docx_第5页
第5页 / 共15页
点击查看更多>>
下载资源
资源描述

数据库sql课后练习题及答案解析.docx

《数据库sql课后练习题及答案解析.docx》由会员分享,可在线阅读,更多相关《数据库sql课后练习题及答案解析.docx(15页珍藏版)》请在冰豆网上搜索。

数据库sql课后练习题及答案解析.docx

数据库sql课后练习题及答案解析

先创建下面三个表:

                                                         (book表)

 

                               (borrow表)

 

                                                        (reader表)

1) 找出姓李的读者姓名(NAME)和所在单位(COMPANY)。

 

2) 列出图书库中所有藏书的书名(BOOK_NAME)及出版单位(OUTPUT)。

 

3) 查找“高等教育出版社”的所有图书名称(BOOK_NAME)及单价(PRICE),结果按单价降序排序。

 

4) 查找价格介于10元和20元之间的图书种类(SORT),结果按出版单位(OUTPUT)和单价(PRICE)升序排序。

 

5) 查找书名以”计算机”开头的所有图书和作者(WRITER)。

 

6) 检索同时借阅了总编号(BOOK_ID)为112266和449901两本书的借书证号(READER_ID)。

##7)* 查找所有借了书的读者的姓名(NAME)及所在单位(COMPANY)。

 

8)* 找出李某所借所有图书的书名及借书日期(BORROW_DATE)。

 

9)* 无重复地查询2006年10月以后借书的读者借书证号(READER_ID)、姓名和单位。

 

##10)* 找出借阅了一书的借书证号。

 

11) 找出与”赵正义”在同一天借书的读者姓名、所在单位及借书日期。

 

12) 查询2006年7月以后没有借书的读者借书证号、姓名及单位。

#13) 求”科学出版社”图书的最高单价、最低单价、平均单价。

##14)* 求”信息系”当前借阅图书的读者人次数。

#15) 求出各个出版社图书的最高价格、最低价格和总册数。

#16) 分别找出各单位当前借阅图书的读者人数及所在单位。

17)* 找出当前至少借阅了2本图书(大于等于2本)的读者姓名及其所在单位。

18) 分别找出借书人次数多于1人次的单位及人次数。

19) 找出藏书中各个出版单位的名称、每个出版社的书籍的总册数(每种可能有多册)、书的价值总额。

20) 查询经济系是否还清所有图书。

如果已经还清,显示该系所有读者的姓名、所在单位和职称。

附录:

建表语句

创建图书管理库的图书、读者和借阅三个基本表的表结构:

创建BOOK:

(图书表)

 CREATETABLEBOOK(

BOOK_IDint,

SORTVARCHAR(10),

BOOK_NAMEVARCHAR(50),

WRITERVARCHAR(10),

OUTPUTVARCHAR(50),

PRICEint); 

创建READER:

(读者表)

CREATETABLEREADER(

READER_IDint,

COMPANYVARCHAR(10),

NAMEVARCHAR(10),

SEXVARCHAR

(2),

GRADEVARCHAR(10),

ADDRVARCHAR(50)); 

创建BORROW:

(借阅表)

CREATETABLEBORROW(

READER_IDint,

BOOK_IDint,

BORROW_DATEdatetime)

插入数据:

BOOK表:

insertintoBOOKvalues(445501,'TP3/12','数据库导论','王强','科学出版社',17.90);

insertintoBOOKvalues(445502,'TP3/12','数据库导论','王强','科学出版社',17.90);

insertintoBOOKvalues(445503,'TP3/12','数据库导论','王强','科学出版社',17.90);

insertintoBOOKvalues(332211,'TP5/10','计算机基础','李伟','高等教育出版社',18.00);

insertintoBOOKvalues(112266,'TP3/12','FoxBASE','张三','电子工业出版社',23.60);

insertintoBOOKvalues(665544,'TS7/21','高等数学','刘明','高等教育出版社',20.00);

insertintoBOOKvalues(114455,'TR9/12','线性代数','孙业','北京大学出版社',20.80);

insertintoBOOKvalues(113388,'TR7/90','大学英语','胡玲','清华大学出版社',12.50);

insertintoBOOKvalues(446601,'TP4/13','数据库基础','马凌云','人民邮电出版社',22.50);

insertintoBOOKvalues(446602,'TP4/13','数据库基础','马凌云','人民邮电出版社',22.50);

insertintoBOOKvalues(446603,'TP4/13','数据库基础','马凌云','人民邮电出版社',22.50);

insertintoBOOKvalues(449901,'TP4/14','FoxPro大全','周虹','科学出版社',32.70);

insertintoBOOKvalues(449902,'TP4/14','FoxPro大全','周虹','科学出版社',32.70);

insertintoBOOKvalues(118801,'TP4/15','计算机网络','黄力钧','高等教育出版社',21.80);

insertintoBOOKvalues(118802,'TP4/15','计算机网络','黄力钧','高等教育出版社',21.80);

READER表:

insertintoreadervalues(111,'信息系','王维利','女','教授','1号楼424');

insertintoreadervalues(112,'财会系','李 立','男','副教授','2号楼316');

insertintoreadervalues(113,'经济系','张 三','男','讲师','3号楼105');

insertintoreadervalues(114,'信息系','周华发','男','讲师','1号楼316');

insertintoreadervalues(115,'信息系','赵正义','男','工程师','1号楼224');

insertintoreadervalues(116,'信息系','李 明','男','副教授','1号楼318');

insertintoreadervalues(117,'计算机系','李小峰','男','助教','1号楼214');

insertintoreadervalues(118,'计算机系','许鹏飞','男','助工','1号楼216');

insertintoreadervalues(119,'计算机系','刘大龙','男','教授','1号楼318');

insertintoreadervalues(120,'国际贸易','李 雪','男','副教授','4号楼506');

insertintoreadervalues(121,'国际贸易','李 爽','女','讲师','4号楼510');

insertintoreadervalues(122,'国际贸易','王 纯','女','讲师','4号楼512');

insertintoreadervalues(123,'财会系','沈小霞','女','助教','2号楼202');

insertintoreadervalues(124,'财会系','朱 海','男','讲师','2号楼210');

insertintoreadervalues(125,'财会系','马英明','男','副教授','2号楼212');

BORROW表:

insertintoborrowvalues(112,445501,'3-19-2006');

insertintoborrowvalues(125,332211,'2-12-2006');

insertintoborrowvalues(111,445503,'8-21-2006');

insertintoborrowvalues(112,112266,'3-14-2006');

insertintoborrowvalues(114,665544,'10-21-2006');

insertintoborrowvalues(120,114455,'11-2-2006');

insertintoborrowvalues(120,118801,'10-18-2006');

insertintoborrowvalues(119,446603,'11-12-2006');

insertintoborrowvalues(112,449901,'10-23-2006');

insertintoborrowvalues(115,449902,'8-21-2006');

insertintoborrowvalues(118,118801,'9-10-2006');

现有关系数据库如下:

数据库名:

图书借阅管理系统

读者表(读者编号char(6),姓名,性别,年龄,单位,身份证号,职称)

图书表(图书编号char(6),图书名称,出版社,作者)

借阅表(读者编号,图书编号,借阅时间)

用SQL语言实现下列功能的sql语句代码。

(1)创建数据表book;

book表(图书编号char(6),图书名称,出版社,作者)

要求使用:

主键(图书编号)、非空(图书名称),非空(作者)

(2)创建数据表reader表;

学生信息表(reader编号char(8),姓名,性别,年龄,工作单位,身份证号,职称)

要求使用:

主键(reader编号)、默认(职称)、非空(工作单位,姓名)、唯一(身份证号)、检查(性别),检查(年龄)

(3)创建借书表borrow;

borrow(ID,读者编号,图书编号,借书日期)

要求使用:

外键(学号,课号)

(4)将下列课程信息添加到book表的代码

图书编号名称

100101数据库原理

100102数据结构

修改课号为100102的图书名称:

数据结构与算法

删除课号为100101的图书信息

(5)创建视图读者借书信息的代码;

读者借书信息视图(读者编号,姓名,图书编号,图书名称,借书日期)

(6)从读者表book中查询姓李的女读者的情况:

姓名、性别、工作单位。

(7)查询统计出借书量超过5本的单位平均年龄

(8)创建带参数的存储过程[借某图书的读者高低均年龄]、执行该过程的代码

存储过程功能:

查询借阅某图书的的读者最高年龄、最低年龄、平均年龄;

执行该过程,查询所有借阅’数据库基础’这本书的读者的最高年龄、最低年龄、平均年龄;

1) 找出姓李的读者姓名(NAME)和所在单位(COMPANY)。

SELECTNAME,COMPANYFROMREADER

WHERENAMELIKE'李%'

 

2) 列出图书库中所有藏书的书名(BOOK_NAME)及出版单位(OUTPUT)。

SELECTBOOK_NAME,OUTPUTFROMBOOK

 

3) 查找“高等教育出版社”的所有图书名称(BOOK_NAME)及单价(PRICE),结果按单价降序排序。

 

SELECTBOOK_NAME,PRICEFROMBOOK

WHEREOUTPUT='高等教育出版社'

ORDERBYPRICEDESC

4) 查找价格介于10元和20元之间的图书种类(SORT),结果按出版单位(OUTPUT)和单价(PRICE)升序排序。

 SELECTSORT,OUTPUT,PRICEFROMBOOK

WHEREPRICEBETWEEN10AND20

ORDERBYOUTPUT,PRICE

5) 查找书名以”计算机”开头的所有图书和作者(WRITER)。

 SELECTBOOK_NAME,WRITERFROMBOOK

WHEREBOOK_NAMELIKE'计算机%'

6) 检索同时借阅了总编号(BOOK_ID)为112266和449901两本书的借书证号(READER_ID)。

SELECTA.READER_IDFROMBORROWA,BORROWB

WHEREA.BOOK_ID='112266'ANDB.BOOK_ID='449901'

ANDA.READER_ID=B.READER_ID

##7)* 查找所有借了书的读者的姓名(NAME)及所在单位(COMPANY)。

SELECTDISTINCTNAME,COMPANYFROMREADER,BORROW

WHEREBORROW.READER_ID=READER.READER_ID

8)* 找出李某所借所有图书的书名及借书日期(BORROW_DATE)。

 

SELECTBOOK.BOOK_NAME,BORROW.BORROW_DATE

FROMBOOK,BORROW,READER

WHEREBOOK.BOOK_ID=BORROW.BOOK_IDANDREADER.READER_ID=BORROW.READER_IDANDREADER.NAMELIKE'李%'

9)* 无重复地查询2006年10月以后借书的读者借书证号(READER_ID)、姓名和单位。

 

SELECTREADER_ID,NAME,COMPANYFROMREADER

WHEREREADER_IDIN(SELECTREADER_IDFROMBORROWWHEREBORROW_DATE>='2006-10-1')

##10)* 找出借阅了一书的借书证号。

 

SELECTDISTINCTREADER_IDFROMBORROW,BOOK

WHEREBORROW.BOOK_ID=BOOK.BOOK_ID

ANDBOOK.BOOK_NAMELIKE'FoxPro大全'

11) 找出与”赵正义”在同一天借书的读者姓名、所在单位及借书日期。

 

SELECTNAME,COMPANY,BORROW_DATEFROMREADER,BORROW

WHEREBORROW.READER_ID=READER.READER_ID

ANDBORROW_DATEIN(SELECTBORROW_DATEFROMBORROW,READER

WHEREBORROW.READER_ID=READER.READER_IDANDNAME='赵正义')

12) 查询2006年7月以后没有借书的读者借书证号、姓名及单位。

SELECTREADER_ID,NAME,COMPANYFROMREADER

WHEREREADER_IDNOTIN(SELECTREADER_IDFROMBORROW

WHEREBORROW_DATE>='2006-7-1')

#13) 求”科学出版社”图书的最高单价、最低单价、平均单价。

SELECTMAX(PRICE)最高单价,MIN(PRICE)最低单价,AVG(PRICE)平均单价

FROMBOOK

WHEREOUTPUT='科学出版社'

##14)* 求”信息系”当前借阅图书的读者人次数。

SELECTCOUNT(DISTINCTREADER_ID)当前借阅图书的读者人次数FROMBORROW

WHEREREADER_IDIN(SELECTREADER_IDFROMREADER

WHERECOMPANYIN('信息系'))

#15) 求出各个出版社图书的最高价格、最低价格和总册数。

SELECTMAX(PRICE)最高价格,MIN(PRICE)最低价格,COUNT(PRICE)总册数FROMBOOK

GROUPBYOUTPUT

#16) 分别找出各单位当前借阅图书的读者人数及所在单位。

SELECTCOUNT(COMPANY)读者人数,COMPANYFROMBORROW,READER

WHEREBORROW.READER_ID=READER.READER_ID

GROUPBYCOMPANY

17)* 找出当前至少借阅了2本图书(大于等于2本)的读者姓名及其所在单位。

SELECTNAME读者姓名,COMPANY单位FROMREADER

WHEREREADER_IDIN(SELECTREADER_IDFROMBORROW

GROUPBYREADER_ID

HAVINGCOUNT(*)>=2)

18) 分别找出借书人次数多于1人次的单位及人次数。

SELECTCOMPANY,COUNT(*)人次数FROMREADER,BORROW

WHEREBORROW.READER_ID=READER.READER_ID

GROUPBYCOMPANY

HAVINGCOUNT(*)>1

19) 找出藏书中各个出版单位的名称、每个出版社的书籍的总册数(每种可能有多册)、书的价值总额。

SELECTOUTPUT,COUNT(*)书籍的总册数,SUM(PRICE)书的价值总额FROMBOOK

GROUPBYOUTPUT

20) 查询经济系是否还清所有图书。

如果已经还清,显示该系所有读者的姓名、

所在单位和职称。

SELECTNAME,COMPANYFROMREADER

WHERENOTEXISTS(SELECT*FROMREADER,BORROW

WHEREREADER.READER_ID=BORROW.READER_IDANDCOMPANY='经济系')

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > PPT模板 > 可爱清新

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1