1、先创建下面三个表:(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 和
2、449901 两本书的借书证号(READER_ID)。#7)* 查找所有借了书的读者的姓名(NAME) 及所在单位(COMPANY) 。 8)* 找出李某所借所有图书的书名及借书日期(BORROW_DATE)。 9)* 无重复地查询 2006 年 10 月以后借书的读者借书证号(READER_ID)、姓名和单位。 #10)* 找出借阅了一书的借书证号。 11) 找出与 ”赵正义”在同一天借书的读者姓名、所在单位及借书日期 。 12) 查询 2006 年 7 月以后没有借书的读者借书证号、姓名及单位。#13) 求” 科学出版社”图书的最高单价、最低单价、平均单价。#14)* 求”信息系” 当前借
3、阅图书的读者人次数。#15) 求出各个出版社图书的最高价格、最低价格和总册数。#16) 分别找出各单位当前借阅图书的读者人数及所在单位。17)* 找出当前至少借阅了 2 本图书( 大于等于 2 本)的读者姓名及其所在单位。18) 分别找出借书人次数多于 1 人次的单位及人次数。19) 找出藏书中各个出版单位的名称、每个出版社的书籍的总册数(每种可能有多册)、书的价值总额。20) 查询经济系是否还清所有图书。如果已经还清,显示该系所有读者的姓名、所在单位和职称。附录:建表语句创建图书管理库的图书、读者和借阅三个基本表的表结构:创建BOOK:(图书表)CREATE TABLE BOOK (BOOK
4、_ID int,SORT VARCHAR(10),BOOK_NAME VARCHAR(50),WRITER VARCHAR(10),OUTPUT VARCHAR(50),PRICE int); 创建READER:(读者表)CREATE TABLE READER (READER_ID int,COMPANY VARCHAR(10),NAME VARCHAR(10),SEX VARCHAR(2),GRADE VARCHAR(10),ADDR VARCHAR(50); 创建BORROW:(借阅表)CREATE TABLE BORROW (READER_ID int,BOOK_ID int,BORRO
5、W_DATE datetime)插入数据:BOOK表:insert into BOOK values(445501,TP3/12,数据库导论 ,王强, 科学出版社,17.90);insert into BOOK values(445502,TP3/12,数据库导论 ,王强, 科学出版社,17.90);insert into BOOK values(445503,TP3/12,数据库导论 ,王强, 科学出版社,17.90);insert into BOOK values(332211,TP5/10,计算机基础 ,李伟, 高等教育出版社, 18.00);insert into BOOK value
6、s(112266,TP3/12,FoxBASE,张三, 电子工业出版社,23.60);insert into BOOK values(665544,TS7/21,高等数学 ,刘明, 高等教育出版社,20.00);insert into BOOK values(114455,TR9/12,线性代数 ,孙业, 北京大学出版社,20.80);insert into BOOK values(113388,TR7/90,大学英语 ,胡玲, 清华大学出版社,12.50);insert into BOOK values(446601,TP4/13,数据库基础 ,马凌云, 人民邮电出版社,22.50 );in
7、sert into BOOK values(446602,TP4/13,数据库基础 ,马凌云, 人民邮电出版社,22.50 );insert into BOOK values(446603,TP4/13,数据库基础 ,马凌云, 人民邮电出版社,22.50 );insert into BOOK values(449901,TP4/14,FoxPro大全, 周虹,科学出版社,32.70);insert into BOOK values(449902,TP4/14,FoxPro大全, 周虹,科学出版社,32.70);insert into BOOK values(118801,TP4/15,计算机网
8、络 ,黄力钧, 高等教育出版社,21.80 );insert into BOOK values(118802,TP4/15,计算机网络, 黄力钧,高等教育出版社,21.80 );READER 表:insert into reader values(111,信息系,王维利,女,教授,1 号楼 424);insert into reader values(112,财会系,李 立, 男,副教授,2 号楼 316);insert into reader values(113,经济系,张 三, 男,讲师,3 号楼 105);insert into reader values(114,信息系,周华发,男,
9、讲师,1 号楼 316);insert into reader values(115,信息系,赵正义,男,工程师,1 号楼 224);insert into reader values(116,信息系,李 明, 男,副教授,1 号楼 318);insert into reader values(117,计算机系,李小峰,男,助教,1 号楼 214);insert into reader values(118,计算机系,许鹏飞,男,助工,1 号楼 216);insert into reader values(119,计算机系,刘大龙,男,教授,1 号楼 318);insert into read
10、er values(120,国际贸易,李 雪, 男,副教授,4 号楼 506);insert into reader values(121,国际贸易,李 爽, 女,讲师,4 号楼 510);insert into reader values(122,国际贸易,王 纯, 女,讲师,4 号楼 512);insert into reader values(123,财会系,沈小霞,女,助教,2 号楼 202);insert into reader values(124,财会系,朱 海, 男,讲师,2 号楼 210);insert into reader values(125,财会系,马英明,男,副教授
11、,2 号楼 212);BORROW表:insert into borrow values(112,445501,3-19-2006);insert into borrow values(125,332211,2-12-2006);insert into borrow values(111,445503,8-21-2006);insert into borrow values(112,112266,3-14-2006);insert into borrow values(114,665544,10-21-2006);insert into borrow values(120,114455,11-
12、2-2006);insert into borrow values(120,118801,10-18-2006);insert into borrow values(119,446603,11-12-2006);insert into borrow values(112,449901,10-23-2006);insert into borrow values(115,449902,8-21-2006);insert into borrow values(118,118801,9-10-2006);现有关系数据库如下: 数据库名:图书借阅管理系统读者表(读者编号 char(6),姓名,性别,年龄
13、,单位,身份证号,职称) 图书表(图书编号 char(6),图书名称,出版社,作者) 借阅表(读者编号,图书编号,借阅时间) 用 SQL 语言实现下列功能的 sql 语句代码。(1) 创建数据表 book;book 表(图书编号 char(6),图书名称,出版社,作者) 要求使用:主键(图书编号)、非空(图书名称),非空(作者)(2)创建数据表 reader 表;学生信息表(reader 编号 char(8),姓名,性别,年龄,工作单位,身份证号,职称) 要求使用:主键(reader 编号)、默认(职称)、非空(工作单位,姓名)、唯一(身份证号)、检查(性别),检查(年龄)(3)创建借书表 b
14、orrow;borrow (ID,读者编号,图书编号,借书日期) 要求使用:外键(学号,课号)(4)将下列课程信息添加到 book 表的代码图书编号 名称100101 数据库原理100102 数据结构修改 课号为 100102 的图书名称:数据结构与算法删除 课号为 100101 的图书信息 (5)创建视图读者借书信息的代码;读者借书信息视图(读者编号,姓名,图书编号,图书名称,借书日期)(6)从读者表 book 中查询姓李的女读者的情况:姓名、性别、工作单位。(7)查询统计出借书量超过 5 本的单位平均年龄(8)创建带参数的存储过程借某图书的读者高低均年龄、执行该过程的代码存储过程功能:查询
15、借阅某图书的的读者最高年龄、最低年龄、平均年龄; 执行该过程,查询所有借阅数据库基础这本书的读者的最高年龄、最低年龄、平均年龄;1) 找出姓李的读者姓名(NAME) 和所在单位(COMPANY)。SELECT NAME,COMPANY FROM READER WHERE NAME LIKE 李%2) 列出图书库中所有藏书的书名(BOOK_NAME)及出版单位(OUTPUT)。SELECT BOOK_NAME, OUTPUT FROM BOOK 3) 查找“高等教育出版社” 的所有图书名称(BOOK_NAME)及单价(PRICE) ,结果按单价降序排序。 SELECT BOOK_NAME,PRI
16、CE FROM BOOK WHERE OUTPUT=高等教育出版社 ORDER BY PRICE DESC4) 查找价格介于 10 元和 20 元之间的图书种类(SORT),结果按出版单位(OUTPUT)和单价(PRICE)升序排序。SELECT SORT,OUTPUT,PRICE FROM BOOKWHERE PRICE BETWEEN 10 AND 20ORDER BY OUTPUT ,PRICE 5) 查找书名以”计算机”开头的所有图书和作者(WRITER)。SELECT BOOK_NAME,WRITER FROM BOOK WHERE BOOK_NAME LIKE 计算机%6) 检索同
17、时借阅了总编号(BOOK_ID)为 112266 和 449901 两本书的借书证号(READER_ID)。SELECT A.READER_ID FROM BORROW A,BORROW B WHERE A.BOOK_ID=112266 AND B.BOOK_ID=449901 AND A.READER_ID=B.READER_ID#7)* 查找所有借了书的读者的姓名(NAME) 及所在单位(COMPANY) 。SELECT DISTINCT NAME,COMPANY FROM READER,BORROWWHERE BORROW.READER_ID=READER.READER_ID8)* 找出
18、李某所借所有图书的书名及借书日期(BORROW_DATE)。SELECT BOOK.BOOK_NAME,BORROW.BORROW_DATE FROM BOOK,BORROW,READERWHERE BOOK.BOOK_ID=BORROW.BOOK_ID AND READER.READER_ID=BORROW.READER_ID AND READER.NAME LIKE 李%9)* 无重复地查询 2006 年 10 月以后借书的读者借书证号(READER_ID)、姓名和单位。 SELECT READER_ID,NAME,COMPANY FROM READERWHERE READER_ID IN
19、 (SELECT READER_ID FROM BORROW WHERE BORROW_DATE =2006-10-1 )#10)* 找出借阅了一书的借书证号。 SELECT DISTINCT READER_ID FROM BORROW,BOOKWHERE BORROW.BOOK_ID=BOOK.BOOK_ID AND BOOK.BOOK_NAME LIKE FoxPro大全11) 找出与” 赵正义” 在同一天借书的读者姓名、所在单位及借书日期 。 SELECT NAME,COMPANY,BORROW_DATE FROM READER,BORROWWHERE BORROW.READER_ID=
20、READER.READER_ID AND BORROW_DATE IN (SELECT BORROW_DATE FROM BORROW,READER WHERE BORROW.READER_ID=READER.READER_ID AND NAME=赵正义)12) 查询 2006 年 7 月以后没有借书的读者借书证号 、姓名及单位。SELECT READER_ID,NAME,COMPANY FROM READERWHERE READER_ID NOT IN (SELECT READER_ID FROM BORROW WHERE BORROW_DATE=2006-7-1)#13) 求” 科学出版社
21、”图书的最高单价、最低单价、平均单价。SELECT MAX(PRICE) 最高单价,MIN (PRICE) 最低单价, AVG(PRICE) 平均单价FROM BOOK WHERE OUTPUT=科学出版社#14)* 求”信息系” 当前借阅图书的读者人次数。SELECT COUNT(DISTINCT READER_ID) 当前借阅图书的读者人次数 FROM BORROWWHERE READER_ID IN (SELECT READER_ID FROM READER WHERE COMPANY IN (信息系)#15) 求出各个出版社图书的最高价格、最低价格和总册数。SELECT MAX(PRI
22、CE) 最高价格,MIN (PRICE) 最低价格, COUNT(PRICE) 总册数FROM BOOKGROUP BY OUTPUT#16) 分别找出各单位当前借阅图书的读者人数及所在单位。SELECT COUNT(COMPANY) 读者人数,COMPANY FROM BORROW,READERWHERE BORROW.READER_ID=READER.READER_IDGROUP BY COMPANY 17)* 找出当前至少借阅了 2 本图书( 大于等于 2 本)的读者姓名及其所在单位。SELECT NAME 读者姓名,COMPANY 单位FROM READER WHERE READER_ID IN (SELECT READER_ID FROM BORROW GROUP BY READER_ID HAVING COUNT(*)=2 )18) 分别找出借书人次数多于 1 人次的单位及人次数。SELECT COMPANY,COUNT(*) 人次数 FROM READER,BORROWWHERE BORROW.READER_ID=READER.READER_ID GROUP BY COMPANYHAVING COUNT(*)1