目录
创建书籍信息表
CREATE TABLE `library`.`books` (
`bid` INT NOT NULL AUTO_INCREMENT,
`name` VARCHAR(45) NOT NULL COMMENT '书籍名称',
`count` INT NOT NULL COMMENT '存量',
`total` INT NOT NULL COMMENT '总量',
PRIMARY KEY (`bid`))
COMMENT = '书籍信息';
创建借阅者信息表
CREATE TABLE `library`.`readers` (
`rid` INT NOT NULL AUTO_INCREMENT,
`name` VARCHAR(45) NOT NULL,
PRIMARY KEY (`rid`))
COMMENT = '借阅者信息';
创建借阅记录表
CREATE TABLE `library`.`records` (
`reid` INT NOT NULL AUTO_INCREMENT,
`rid` INT NOT NULL COMMENT '谁借的',
`bid` INT NOT NULL COMMENT '借的哪本书',
`borrowed_at` DATETIME NOT NULL DEFAULT current_timestamp COMMENT '借阅时间',
PRIMARY KEY (`reid`))
COMMENT = '借阅记录';
插入书籍
-- 插入书籍
insert into books(name,count,total) values
('西游记',10,10),
('红楼梦',20,20),
('三国演义',35,35),
('鲁滨逊漂流记',10,10),
('水浒传',10,10);
插入借阅者信息
-- 插入借阅者信息
insert into readers(name) values
('张三'),
('李四');
插入完成后的结果
借阅人的操作
浏览书籍
-- 借阅人:浏览书籍记录
select * from books order by id;
借书
-- 借阅人:借书 rid为1的张三借阅了bid为2红楼梦
-- 把图书馆中红楼梦的存量-1
update books set count = count -1 where bid = 2;
-- 在借阅记录中插入张三借阅红楼梦的记录
insert into records (rid,bid) values (1,2);
还书
-- 借阅人:借书 rid为1的张三把bid为2红楼梦归还
-- 把图书馆中红楼梦的存量+1
update books set count = count +1 where bid = 2;
-- 在借阅记录中删除张三借阅红楼梦的记录
delete from records where rid = 1 and bid = 2;
管理员的操作
上架新书
-- 管理员 :上架新书海底两万里和巴黎圣母院
insert into books (name,count,total) values ('海底两万里',15,15),('巴黎圣母院',20,20);
增加书的数量
-- 管理员 :增加 bid 为1的书的数量
update books set count = count + 10,total = total + 10 where bid = 1;
减少书的数量
-- 管理员 :减少 bid 为7的书的数量
update books set count = count - 10,total = total - 10 where bid = 7;
下架书
- 当没有人借书的时候才可以下架书
-- 管理员 :下架 bid 为1的书
delete from books where bid = 1;