知识问答
MySQL数据库期末考试编程题,有哪些是必须遵守的数据库编程规范?
2025-09-21 16:41:28
来源:互联网转载
MySQL数据库期末考试编程题
题目描述:
设计一个简单的图书管理系统,包括以下功能:
1、图书信息表(Book):
书名(book_name):VARCHAR(100)
作者(author):VARCHAR(100)
出版年份(publish_year):YEAR
I***N(i***n):char(13)
库存数量(stock):INT
2、用户信息表(User):
用户名(username):VARCHAR(50)
密码(password):VARCHAR(50)
联系方式(contact):VARCHAR(100)
3、借阅信息表(Borrow):
借阅ID(borrow_id):INT,主键,自增
用户名(username):VARCHAR(50),外键,关联User表的username
书名(book_name):VARCHAR(100),外键,关联Book表的book_name
借阅日期(borrow_date):DATE
应还日期(due_date):DATE
实际还书日期(return_date):DATE
编程要求:
1、创建数据库和表。
2、插入一些示例数据到各个表中。
3、编写SQL语句实现以下功能:
查询所有图书信息。
查询所有用户信息。
查询所有借阅信息。
查询所有库存数量小于5的图书。
查询特定用户名下所有借阅信息。
借阅图书(假设用户名和书名已知)。
归还图书(假设借阅ID已知)。
答案:
1. 创建数据库CREATE DATABASE IF NOT EXISTS LibraryManagementSystem;USE LibraryManagementSystem;2. 创建图书信息表CREATE TABLE IF NOT EXISTS Book ( book_name VARCHAR(100), author VARCHAR(100), publish_year YEAR, i***n char(13), stock INT, PRIMARY KEY (i***n));3. 创建用户信息表CREATE TABLE IF NOT EXISTS User ( username VARCHAR(50), password VARCHAR(50), contact VARCHAR(100), PRIMARY KEY (username));4. 创建借阅信息表CREATE TABLE IF NOT EXISTS Borrow ( borrow_id INT AUTO_INCREMENT PRIMARY KEY, username VARCHAR(50), book_name VARCHAR(100), borrow_date DATE, due_date DATE, return_date DATE, FOREIGN KEY (username) REFERENCES User(username), FOREIGN KEY (book_name) REFERENCES Book(book_name));5. 插入示例数据insert INTO Book (book_name, author, publish_year, i***n, stock) VALUES('The Great Gat***y', 'F. Scott Fitzgerald', 1925, '9780743273565', 10),('1984', 'George Orwell', 1949, '9780451524935', 5),('To Kill a Mockingbird', 'Harper Lee', 1960, '9780061120084', 8);insert INTO User (username, password, contact) VALUES('user1', 'password1', '1234567890'),('user2', 'password2', '0987654321');insert INTO Borrow (username, book_name, borrow_date, due_date, return_date) VALUES('user1', 'The Great Gat***y', '20230401', '20230415', NULL),('user2', '1984', '20230402', '20230416', NULL);6. 查询所有图书信息select * FROM Book;7. 查询所有用户信息select * FROM User;8. 查询所有借阅信息select * FROM Borrow;9. 查询所有库存数量小于5的图书select * FROM Book WHERE stock < 5;10. 查询特定用户名下所有借阅信息select * FROM Borrow WHERE username = 'user1';11. 借阅图书(假设用户名和书名已知)首先检查库存select stock FROM Book WHERE book_name = 'The Great Gat***y';如果库存大于0,执行以下操作update Book SET stock = stock 1 WHERE book_name = 'The Great Gat***y';insert INTO Borrow (username, book_name, borrow_date, due_date) VALUES ('user1', 'The Great Gat***y', CURDATE(), DATE_ADD(CURDATE(), INTERVAL 1 MONTH));12. 归还图书(假设借阅ID已知)update Borrow SET return_date = CURDATE() WHERE borrow_id = 1;update Book SET stock = stock + 1 WHERE book_name = (select book_name FROM Borrow WHERE borrow_id = 1);
是按照题目要求完成的MySQL数据库编程题的答案。