mysql 一个简单的图书管理系统包括图书馆内书籍的信息、学校在校学生的信息以及学生的借阅信息。此系统的功能分为面向学生和面向管理员两部分,其中,面向学生部分可以进行借阅、续借、归还和查询书籍等操作;面向管理员部分可以完成书籍和学生的增加、删除和修改以及对学生借阅、续借、归还的确认。要求完成该系统的数据库设计,用sql语句实现数据库的设计,并在mysql上调试通过。
时间: 2023-05-31 22:18:33 浏览: 412
### 回答1:
这是关于MySQL一个简单的图书管理系统,包括图书馆内书籍的信息、学校在校学生的信息以及学生的借阅信息等。此系统的功能分为面向学生和面向管理员两部分,其中,面向学生部分可以进行借阅、续借、归还和查阅书籍等操作;面向管理员部分可以完成书籍和学生的增加、删除和修改以及对学生借阅、续借、归还和查阅书籍等的操作。要求完成该系统的数据库设计,用SQL语句实现数据库的设计,并在MySQL上进行调试通过。
### 回答2:
图书管理系统数据库设计
该图书管理系统的数据库包括三个表,分别为book(书籍)、student(学生)和borrow(借阅记录)。其中,book表包括书籍的ISBN编号、书名、作者、出版社、出版日期和数量等信息;student表包括学生的学号、姓名、性别、班级和电话等信息;borrow表包括借阅记录的借阅编号、书籍的ISBN编号、学生的学号、借阅日期和归还日期等信息。
图书管理系统的sql语句实现
1. 创建book表
CREATE TABLE book (
ISBN CHAR(13) NOT NULL PRIMARY KEY,
title VARCHAR(100) NOT NULL,
author VARCHAR(50) NOT NULL,
press VARCHAR(50) NOT NULL,
pub_date DATE NOT NULL,
quantity INT NOT NULL
);
2. 创建student表
CREATE TABLE student (
student_id CHAR(8) NOT NULL PRIMARY KEY,
name VARCHAR(20) NOT NULL,
gender VARCHAR(4) NOT NULL,
class VARCHAR(20) NOT NULL,
phone VARCHAR(20) NOT NULL
);
3. 创建borrow表
CREATE TABLE borrow (
borrow_id INT NOT NULL PRIMARY KEY AUTO_INCREMENT,
ISBN CHAR(13) NOT NULL,
student_id CHAR(8) NOT NULL,
borrow_date DATE NOT NULL,
return_date DATE,
FOREIGN KEY (ISBN) REFERENCES book(ISBN),
FOREIGN KEY (student_id) REFERENCES student(student_id)
);
4. 插入数据到book表
INSERT INTO book (ISBN, title, author, press, pub_date, quantity)
VALUES
('9787111601513', 'MySQL权威指南', 'Michael Widenius, David Axmark, MySQL AB', '机械工业出版社', '2003-08-01', 10),
('9780596008752', 'Head First Design Patterns', 'Eric Freeman, Elisabeth Robson, Bert Bates, Kathy Sierra', 'O''Reilly', '2004-11-04', 5),
('9787115443229', 'JavaScript高级程序设计', 'Nicholas C. Zakas', '人民邮电出版社', '2013-01-01', 8);
5. 插入数据到student表
INSERT INTO student (student_id, name, gender, class, phone)
VALUES
('20010001', '张三', '男', '计算机1班', '13800138001'),
('20010002', '李四', '女', '计算机1班', '13800138002'),
('20010003', '王五', '男', '计算机2班', '13800138003');
6. 插入数据到borrow表
INSERT INTO borrow (ISBN, student_id, borrow_date)
VALUES
('9787111601513', '20010001', '2020-10-01'),
('9787111601513', '20010002', '2020-10-03'),
('9780596008752', '20010003', '2020-10-05'),
('9780596008752', '20010001', '2020-10-07');
7. 查询书籍信息
SELECT ISBN, title, author, press, pub_date, quantity FROM book;
8. 查询学生信息
SELECT student_id, name, gender, class, phone FROM student;
9. 查询借阅记录
SELECT borrow_id, ISBN, student_id, borrow_date, return_date FROM borrow;
10. 借阅书籍
UPDATE book SET quantity = quantity - 1 WHERE ISBN = '9787111601513';
INSERT INTO borrow (ISBN, student_id, borrow_date) VALUES ('9787111601513', '20010003', '2020-10-10');
11. 续借书籍
UPDATE borrow SET return_date = DATE_ADD(return_date, INTERVAL 7 DAY) WHERE borrow_id = 1;
12. 归还书籍
UPDATE book SET quantity = quantity + 1 WHERE ISBN = '9787111601513';
UPDATE borrow SET return_date = '2020-10-20' WHERE borrow_id = 1;
13. 增加书籍
INSERT INTO book (ISBN, title, author, press, pub_date, quantity)
VALUES
('9787115443229', 'JavaScript高级程序设计', 'Nicholas C. Zakas', '人民邮电出版社', '2013-01-01', 10);
14. 增加学生
INSERT INTO student (student_id, name, gender, class, phone)
VALUES ('20010004', '赵六', '男', '计算机2班', '13800138004');
15. 删除书籍
DELETE FROM book WHERE ISBN = '9787115443229';
16. 删除学生
DELETE FROM student WHERE student_id = '20010004';
图书管理系统的mysql调试
要测试该系统是否可以正常运行,可以进行以下测试:
1. 查询书籍、学生和借阅记录是否正确插入并显示。
2. 借阅、续借和归还书籍功能是否正常。
3. 增加和删除书籍、学生是否正常。
4. 是否能够对借阅、续借、归还进行确认。
5. 系统是否能够处理同时有多名学生借阅同一本书的情况。
通过以上测试,可以验证该图书管理系统在mysql上调试通过。
### 回答3:
该图书管理系统应该包括以下七个表:书籍信息表、学生信息表、借阅信息表、管理员信息表、出版社信息表、作者信息表、种类信息表。
1. 书籍信息表(book_info)包括字段:书籍id、书名、出版社id、作者id、种类id、库存
2. 学生信息表(student_info)包括字段:学生id、学生姓名、性别、年级、专业、学院
3. 借阅信息表(borrow_info)包括字段:借阅记录id、学生id、书籍id、借阅日期、归还日期、是否归还
4. 管理员信息表(admin_info)包括字段:管理员id、管理员姓名、联系方式、密码
5. 出版社信息表(publish_info)包括字段:出版社id、出版社名称
6. 作者信息表(author_info)包括字段:作者id、作者姓名
7. 种类信息表(category_info)包括字段:种类id、种类名称
以上七个表中,借阅信息表是连向学生信息表和书籍信息表的一个关联表,出版社信息表、作者信息表、种类信息表三个表则是为书籍信息表服务的辅助表。每个表中的字段要根据具体需求进行设计,确保无重复字段。
下面是用sql语句实现数据库的设计:
-- 创建出版社信息表
CREATE TABLE `publish_info` (
`publish_id` int(11) NOT NULL AUTO_INCREMENT,
`publish_name` varchar(50) NOT NULL DEFAULT '',
PRIMARY KEY (`publish_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
-- 创建作者信息表
CREATE TABLE `author_info` (
`author_id` int(11) NOT NULL AUTO_INCREMENT,
`author_name` varchar(50) NOT NULL DEFAULT '',
PRIMARY KEY (`author_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
-- 创建种类信息表
CREATE TABLE `category_info` (
`category_id` int(11) NOT NULL AUTO_INCREMENT,
`category_name` varchar(50) NOT NULL DEFAULT '',
PRIMARY KEY (`category_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
-- 创建书籍信息表
CREATE TABLE `book_info` (
`book_id` int(11) NOT NULL AUTO_INCREMENT,
`book_name` varchar(100) NOT NULL DEFAULT '',
`publish_id` int(11) NOT NULL,
`author_id` int(11) NOT NULL,
`category_id` int(11) NOT NULL,
`inventory` int(11) NOT NULL,
PRIMARY KEY (`book_id`),
FOREIGN KEY (`publish_id`) REFERENCES `publish_info`(`publish_id`),
FOREIGN KEY (`author_id`) REFERENCES `author_info`(`author_id`),
FOREIGN KEY (`category_id`) REFERENCES `category_info`(`category_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
-- 创建学生信息表
CREATE TABLE `student_info` (
`student_id` int(11) NOT NULL AUTO_INCREMENT,
`student_name` varchar(50) NOT NULL DEFAULT '',
`gender` varchar(4) NOT NULL DEFAULT '',
`grade` varchar(10) NOT NULL DEFAULT '',
`major` varchar(50) NOT NULL DEFAULT '',
`college` varchar(50) NOT NULL DEFAULT '',
PRIMARY KEY (`student_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
-- 创建借阅信息表
CREATE TABLE `borrow_info` (
`borrow_id` int(11) NOT NULL AUTO_INCREMENT,
`student_id` int(11) NOT NULL,
`book_id` int(11) NOT NULL,
`borrow_date` date NOT NULL,
`return_date` date DEFAULT NULL,
`is_return` tinyint(1) NOT NULL DEFAULT '0',
PRIMARY KEY (`borrow_id`),
FOREIGN KEY (`student_id`) REFERENCES `student_info`(`student_id`),
FOREIGN KEY (`book_id`) REFERENCES `book_info`(`book_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
-- 创建管理员信息表
CREATE TABLE `admin_info` (
`admin_id` int(11) NOT NULL AUTO_INCREMENT,
`admin_name` varchar(50) NOT NULL DEFAULT '',
`contact` varchar(50) NOT NULL DEFAULT '',
`password` varchar(50) NOT NULL DEFAULT '',
PRIMARY KEY (`admin_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
以上六个表的设计就完成了。根据具体需求还可以添加一些其他的表和字段。在mysql上调试通过后,即可实现一个相对完善的图书管理系统。
阅读全文