简易图书数据库管理系统

简易图书管理数据库(假定数据库名为:BooksDB)包含4个关系(即:数据表)。关系名、属性及说明分别如下述各表所示。

读者类别表:ReaderType

序号 字段名 数据类型 说明
1 rdType int 读者类别号【主键】
2 rdTypeName varchar(20) 读者类别名称
3 canLendQty int 可借书数量
4 canLendDay int 可借书天数

读者信息表:Reader

序号 字段名 数据类型 说明
1 rdID char(9) 读者编号【主键】
2 rdType int 读者类别号【外键,非空】
3 rdName varchar(20) 读者姓名
4 rdDept varchar (40) 读者单位
5 rdQQ varchar (13) 读者QQ
6 rdBorrowQty int 已借书数量(默认值0,取值范围0~10)

图书信息表:Book

序号 字段名 数据类型 说明
1 bkID char(9) 书号【主键】
2 bkName varchar(50) 书名
3 bkAuthor varchar(50) 作者
4 bkPress varchar(50) 出版社
5 bkPrice decimal(5,2) 单价
6 bkStatus int 是否在馆(1:在馆,0:不在馆)

借阅信息表:Borrow

序号 字段名 数据类型 说明
2 rdID char(9) 读者编号【外键】 (rdID, bkID) 是主键
1 bkID char(9) 书号 【外键】
3 DateBorrow DateTime 借书日期
4 DateLendPlan DateTime 应还日期
3 DateLendAct DateTime 实际还书日期

建表语句

-- 创建数据库
create database BooksDB;-- 选择BooksDB数据库
use BooksDB;-- 创建读者类别表 ReaderType
create table ReaderType(rdType int primary key comment "读者类别号(主键)",rdTypeName varchar(20) comment "读者类别名称",canLendDty int comment "可借书数量",canLendDay int comment "可借书天数"
);select * from readertype;-- 创建读者信息表 Reader
create table Reader(rdID char(9) primary key comment "读者编号",rdType int not null comment "类别号(外键)",rdName varchar(20) comment "姓名",rdDept varchar(40) comment "单位",rdQQ varchar(13) comment "QQ",rdBorrowQty int default 0 check (rdBorrowQty between 0 and 10) comment "已借书数量(默认值0,取值范围0-10)",foreign key(rdType) references ReaderType(rdType)
);-- 创建图书信息表 Book
create table Book(bkId char(9) primary key comment "书号",bkName varchar(50) comment "书名",bkAuthor varchar(50) comment "作者",bkPress varchar(50) comment "出版社",bkPrice decimal(5,2) comment "单价",bkStatus int default 1 comment "是否在馆(1:在馆,0:不在馆)"
);-- 借阅信息表 Borrow
create table Borrow(rdID char(9) comment "读者编号",bkID char(9) comment "书号",DateBorrow datetime comment "借书日期",DateLendPlan datetime comment "应还日期",DateLendAct datetime comment "实际还书日期",primary key(rdID,bkID),foreign key(rdID) references Reader(rdID),foreign key(bkID) references Book(bkID)
);insert into ReaderType values
(1, '教师', 10, 60),
(2, '本科生', 5, 30),
(3, '硕士研究生', 6, 40),
(4, '博士研究生', 8, 50);insert into Reader values
('rd2017001', 1, '王桃群', '计算机科学学院', 3635751, 10),
('rd2017002', 2, '孙小美', '英语学院', 11223344, 5),
('rd2017003', 3, '连晓燕', '管理学院', 55996633, 3),
('rd2017004', 4, '许苗', '物理学院', 88552277, 0);insert into Book values
('bk2017001', '数据库原理及应用', '王丽艳', '机械工业出版社', 33.00, 1),
('bk2017002', '高等数学', '同济大学数学系', '高等教育出版社', 32.00, 1),
('bk2017003', '当代教育心理学', '陈琦', '北京师范大学出版社', 37.20, 1),
('bk2017004', '古代汉语', '王力', '中华书局', 20.40, 1);insert into Borrow values
('rd2017001', 'bk2017002', '2022-5-11', '2021-5-18', '2021-10-17'),
('rd2017001', 'bk2017003', '2021-9-11', '2021-10-18', '2021-10-17'),
('rd2017001', 'bk2017004', '2022-10-11', '2022-10-18', '2022-10-17'),
('rd2017002', 'bk2017001', '2022-4-11', '2022-5-8', '2022-4-18'),
('rd2017002', 'bk2017003', '2022-2-11', '2022-8-18', '2022-3-17'),
('rd2017003', 'bk2017001', '2022-1-11', '2022-6-18', '2022-5-17'),
('rd2017004', 'bk2017001', '2022-2-11', '2022-5-18', '2022-4-17');

查询语句

-- 针对简易图书管理数据库BooksDB,用SQL命令完成以下单表查询。
-- 1、查询所有读者的编号和姓名;
select rdID,rdName from reader;-- 2、查询所有读者的编号、姓名和单位,要求修改查询结果的列名;
select rdId as 编号,rdname as 姓名,rdDept as 单位
from reader;-- 3、查询Reader表的全部列
select * from reader;-- 4、查询借阅过图书的读者的编号;
select distinct rdId from Borrow
where DateBorrow is not null;-- 5、查询单价大于30元的图书的书号和书名;
select bkID,bkName from Book
where bkPrice > 30;-- 6、查询单价不在30至40元之间的图书的书号、书名和作者;
select * from Book;
select bkID,bkName,bkAuthor
from Book
where bkPrice not between 30 and 40;-- 7、查询既不是管理学院、也不是物理学院的读者的姓名和QQ;
select * from Reader;
select rdName,rdQQ
from Reader
where rdDept not in('管理学院','物理学院');-- 8、分别使用like 和 regexp查询所有姓“王”的读者的姓名、单位和QQ;
select rdName,rdDept,rdQQ
from Reader
where rdName like '王%';select rdName,rdDept,rdQQ
from Reader
where rdName regexp '^王';-- 9、分别使用like 和 regexp查询查询所有不姓“王”的读者的姓名、单位和QQ;
select rdName,rdDept,rdQQ
from Reader
where rdName not like '王%';select rdName,rdDept,rdQQ
from Reader
where rdName not regexp '^王';-- 10、查询所有全名只有两个字的读者的姓名、单位和QQ;
select rdName,rdDept,rdQQ
from Reader
where rdName like'__';-- 11、查询所有图书还未归还的借阅信息;
select *
from Borrow
where DateLendAct is null;-- 12、查询借阅了书号“bk2017001”的读者的编号和借书日期,查询结果按借书日期降序排列;
select rdID,DateBorrow
from Borrow
where bkId = 'bk2017001'
order by DateBorrow desc;-- 13、查询读者的总人数;
select count(*) from Reader;-- 14、查询借阅过图书的读者人数;
select count(rdID) from Reader
where rdBorrowQty !=0;-- 15、查询所有图书的最高单价;
select max(bkPrice) from Book;-- 16、查询各单位名及该单位的读者人数;
select rdDept,count(rdID)
from Reader
group by rdDept;-- 17、查询读者人数大于40的单位名及该单位的读者人数;
select rdDept,count(rdID)
from Reader
group by rdDept
having count(rdID)>40;

MySQL_简易图书数据库管理系统_峰峰博客_峰峰吃芒果相关推荐

  1. 根子在上面的问题_岳晓光_出问题的根子在价值投资上_中金博客_中金在线

    这篇文章早该发表,拖了这么久,语音倒是讲了好几次了,断断续续博客提过几次,太忙,耽误到今天很抱歉,今晚抽空整理成文.记录这个阶段市场发生的事情和我的思考总结. 这两位先生一直是我研究学习的目标,他们可 ...

  2. C++STL与泛型编程__侯捷视频_学习博客_总目录

    C++STL与泛型编程 侯捷 (1): c++重要网站相关 C++STL与泛型编程(2) 第一个C++ STL Application: STL六大部件代码示例,容器前闭后开区间,auto关键字的用法 ...

  3. SpringBoot实现代码生成器——基于SpringBoot和Vue的后台管理系统项目系列博客(十)

    系列文章目录 系统功能演示--基于SpringBoot和Vue的后台管理系统项目系列博客(一) Vue2安装并集成ElementUI--基于SpringBoot和Vue的后台管理系统项目系列博客(二) ...

  4. SpringBoot实现1对1、1对多、多对多关联查询——基于SpringBoot和Vue的后台管理系统项目系列博客(十八)

    系列文章目录 系统功能演示--基于SpringBoot和Vue的后台管理系统项目系列博客(一) Vue2安装并集成ElementUI--基于SpringBoot和Vue的后台管理系统项目系列博客(二) ...

  5. SpringBoot和Vue集成Markdown和多级评论——基于SpringBoot和Vue的后台管理系统项目系列博客(二十三)

    系列文章目录 系统功能演示--基于SpringBoot和Vue的后台管理系统项目系列博客(一) Vue2安装并集成ElementUI--基于SpringBoot和Vue的后台管理系统项目系列博客(二) ...

  6. SpringBoot实现分页查询——基于SpringBoot和Vue的后台管理系统项目系列博客(七)

    系列文章目录 系统功能演示--基于SpringBoot和Vue的后台管理系统项目系列博客(一) Vue2安装并集成ElementUI--基于SpringBoot和Vue的后台管理系统项目系列博客(二) ...

  7. ubuntu下解决“无法获得锁 ”的方法_cppmylove的博客-CSDN博客_无法获得锁

    ubuntu下解决"无法获得锁 "的方法_cppmylove的博客-CSDN博客_无法获得锁 E: 无法获得锁 /var/lib/dpkg/lock-frontend - open ...

  8. 无人驾驶运动学模型——线性时变模型预测控制的思路推演过程_百叶书的博客-CSDN博客_线性时变模型预测控制 转

    无人驾驶运动学模型--线性时变模型预测控制的思路推演过程_百叶书的博客-CSDN博客_线性时变模型预测控制

  9. 深入理解计算机系统 -资料整理 高清中文版_在所不辞的博客-CSDN博客_深入理解计算机系统第四版pdf

    深入理解计算机系统 -资料整理 高清中文版_在所不辞的博客-CSDN博客_深入理解计算机系统第四版pdf

最新文章

  1. 外链起到引导、推广排名的作用
  2. 敏捷个人第六次练习讨论:个人价值观练习
  3. SAP Fiori应用里出现http request错误的原因分析
  4. c#结合emgucv进行人脸检测_Python实时人脸识别/替换
  5. int pthread_atfork(void (*prepare)(void), void (*parent)(void), void (*child)(void));
  6. 大android 平板,15.6英寸安卓大平板? 阿芙罗S1评测
  7. C语言程序设计精要,C语言程序设计精要.doc
  8. 做网站买主机还是服务器,做网站买主机还是服务器
  9. 阶段1 语言基础+高级_1-3-Java语言高级_08-JDK8新特性_第4节 方法引用_4_方法引用_通过super引用父类的...
  10. csdn怎么添加好友
  11. 智能家居无线组网技术,WiFi芯片模组连接应用,物联网无线技术发展
  12. 自动化/控制工程专业英语01——什么是控制[考研/保研面试]
  13. php 修改文件的权限_授予PHP写入文件和文件夹的权限
  14. 【ISO】Windows10系统ISO镜像怎么从微软官网下载?
  15. Windows11查看处理器以及显卡型号
  16. 历史二—— 浮点运算与数组下标寻址
  17. springboot之Result结果类处理
  18. 数据库课程设计——学生宿舍信息管理系统
  19. 29_多易教育之《yiee数据运营系统》附录:扩展知识点汇总系列二
  20. frida-ios-dump实现iOS应用砸壳

热门文章

  1. PTA 剥洋葱(超级好理解)
  2. PS_变量批量生产名片
  3. springboot实现微信小程序二维码生成
  4. 知到测试---大学生心理健康教育
  5. python下载博文中微博图床图片
  6. android调用另一个app,Android调用另一个App界面
  7. Either your server has no Maven installations defined, or the requested Maven version does not exist
  8. 【Linux】系统编程——文件编程
  9. MySql打开局域网及广域网端口
  10. 批量提取 srt 字幕文件中的文字