
图书(总编号,分类号,书名,作者,出版单位,单价)
读者(借书证号,单位,姓名,性别,职称,地址)
借阅(借书证号,总编号,借书日期)
利用SQL创建图书、读者和借阅三个基本表的表结构:
图书:
| 总编号 | 分类号 | 书名 | 作者 | 出版单位 | 单价 |
| 445501 | TP3/12 | 数据库导论 | 王强 | 科学出版社 | 17.90 |
| 445502 | TP3/12 | 数据库导论 | 王强 | 科学出版社 | 17.90 |
| 445503 | TP3/12 | 数据库导论 | 王强 | 科学出版社 | 17.90 |
| 332211 | TP5/10 | 计算机基础 | 李伟 | 高等教育出版社 | 18.00 |
| 112266 | TP3/12 | FoxBASE | 张三 | 电子工业出版社 | 23.60 |
| 665544 | TS7/21 | 高等数学 | 刘明 | 高等教育出版社 | 20.00 |
| 114455 | TR9/12 | 线性代数 | 孙业 | 北京大学出版社 | 20.80 |
| 113388 | TR7/90 | 大学英语 | 胡玲 | 清华大学出版社 | 12.50 |
| 446601 | TP4/13 | 数据库基础 | 马凌云 | 人民邮电出版社 | 22.50 |
| 446602 | TP4/13 | 数据库基础 | 马凌云 | 人民邮电出版社 | 22.50 |
| 446603 | TP4/13 | 数据库基础 | 马凌云 | 人民邮电出版社 | 22.50 |
| 449901 | TP4/14 | FoxPro大全 | 周虹 | 科学出版社 | 32.70 |
| 449902 | TP4/14 | FoxPro大全 | 周虹 | 科学出版社 | 32.70 |
| 118801 | TP4/15 | 计算机网络 | 黄力钧 | 高等教育出版社 | 21.80 |
| 118802 | TP4/15 | 计算机网络 | 黄力钧 | 高等教育出版社 | 21.80 |
| 借书证号 | 单位 | 姓名 | 性别 | 职称 | 地址 |
| 111 | 信息系 | 王维利 | 女 | 教授 | 1号楼424 |
| 112 | 财会系 | 李 立 | 男 | 副教授 | 2号楼316 |
| 113 | 经济系 | 张 三 | 男 | 讲师 | 3号楼105 |
| 114 | 信息系 | 周华发 | 男 | 讲师 | 1号楼316 |
| 115 | 信息系 | 赵正义 | 男 | 工程师 | 1号楼224 |
| 116 | 信息系 | 李 明 | 男 | 副教授 | 1号楼318 |
| 117 | 计算机系 | 李小峰 | 男 | 助教 | 1号楼214 |
| 118 | 计算机系 | 许鹏飞 | 男 | 助工 | 1号楼216 |
| 119 | 计算机系 | 刘大龙 | 男 | 教授 | 1号楼318 |
| 120 | 国际贸易 | 李 雪 | 男 | 副教授 | 4号楼506 |
| 121 | 国际贸易 | 李 爽 | 女 | 讲师 | 4号楼510 |
| 122 | 国际贸易 | 王 纯 | 女 | 讲师 | 4号楼512 |
| 123 | 财会系 | 沈小霞 | 女 | 助教 | 2号楼202 |
| 124 | 财会系 | 朱 海 | 男 | 讲师 | 2号楼210 |
| 125 | 财会系 | 马英明 | 男 | 副教授 | 2号楼212 |
| 借书证号 | 总编号 | 借书日期 |
| 112 | 445501 | 1997-3-19 |
| 125 | 332211 | 1997-2-12 |
| 111 | 445503 | 1997-8-21 |
| 112 | 112266 | 1997-3-14 |
| 114 | 665544 | 1997-10-21 |
| 120 | 114455 | 1997-11-2 |
| 120 | 118801 | 1997-10-18 |
| 119 | 446603 | 1997-12-12 |
| 112 | 449901 | 1997-10-23 |
| 115 | 449902 | 1997-8-21 |
| 118 | 118801 | 1997-9-10 |
Select 姓名,单位 from 读者 where 姓名 like “李%”
2) 列出图书库中所有藏书的书名及出版单位。
Select 书名,出版单位 from 图书 distinct
3) 查找高等教育出版社的所有图书及单价,结果按单价降序排序。
Select 书名,单价 from 图书 where 出版单位=”高等教育出版社” order by 单价 desc
4) 查找价格介于10元和20元之间的图书种类,结果按出版单位和单价升序排序。
Select * from 图书 where单价 between 10 and 20 order by 出版单位,单价
5) 查找书名以计算机打头的所有图书和作者。
Select 书名,作者 from 图书 where 书名 like “计算机%”
6) 查找所有借了书的读者的姓名及所在单位。
Select 姓名,单位 from 借阅,读者 where 借阅.借书证号=读者.借书证号 distinct
7) 找出李某所借图书的所有图书的书名及借书日期。
Select 书名,借书日期 from 借阅,图书,读者 where 姓名 like "李%" and 图书.总编号=借阅.总编号 and 读者.借书证号=借阅.借书证号
8) 查询1997年10月以后借书的读者借书证号、姓名和单位。
select 借阅.借书证号,姓名,单位 from 借阅,读者 where 借书日期>{^1997-10-31} and 借阅.借书证号=读者.借书证号
9) 找出借阅了FoxPro大全一书的借书证号。
select 借书证号 from 借阅,图书 where 书名="FoxPro大全" and 图书.总编号=借阅.总编号
10) 求科学出版社图书的最高单价、最低单价、平均单价。
select max(单价),min(单价),avg(单价) from 图书 where 出版单位="科学出版社"
11) 求信息系当前借阅图书的读者人次数。
select count(*) from 读者,借阅 where 单位="信息系" and 读者.借书证号=借阅.借书证号
12) 求出各个出版社图书的最高价格、最低价格和册数。
select max(单价),min(单价),count(*),出版单位 from 图书 group by 出版单位
13) 找出当前至少借阅了2本图书的读者及所在单位。
select 姓名,单位 distinct from 读者,借阅 where 读者.借书证号 in (select 借书证号 from 借阅 group by 借书证号 having count(*)>=2)
14) 找出藏书中各个出版单位的册数、价值总额。
select 出版单位,count(出版单位),sum(单价) from 图书 group by 出版单位
15) 对科学出版社所有书籍的单价提高10%
update 图书 set 单价=单价*1.1 where 出版单位="科学出版社"
16)逻辑删除张三的读者信息
delete from 读者 where 姓名="张三"
17)在读者中加入一条信息:姓名:李四,借书证号:126,性别:男。其他信息暂不加入。
insert into 读者(借书证号,姓名,性别) values ("126李四男")
