用sql写一个图书借阅管理系统
时间: 2023-11-13 19:03:37 浏览: 91
好的,以下是一个简单的图书借阅管理系统的 SQL:
```
CREATE TABLE books (
id INT PRIMARY KEY,
title VARCHAR(255) NOT NULL,
author VARCHAR(255) NOT NULL,
publish_date DATE NOT NULL,
total INT NOT NULL,
available INT NOT NULL
);
CREATE TABLE borrowers (
id INT PRIMARY KEY,
name VARCHAR(255) NOT NULL,
email VARCHAR(255) NOT NULL,
phone VARCHAR(20) NOT NULL
);
CREATE TABLE borrowings (
id INT PRIMARY KEY,
book_id INT NOT NULL,
borrower_id INT NOT NULL,
borrow_date DATE NOT NULL,
return_date DATE,
FOREIGN KEY (book_id) REFERENCES books(id),
FOREIGN KEY (borrower_id) REFERENCES borrowers(id)
);
```
这里我们创建了三个表:
- `books` 表存储了所有的图书信息,包括书名、作者、出版日期、总数以及可供借阅的数量。
- `borrowers` 表存储了所有的借阅者信息,包括姓名、邮箱、电话等。
- `borrowings` 表记录了每一次借阅的具体信息,包括所借图书的 ID、借阅者的 ID、借阅日期和归还日期。
接下来,我们可以通过以下 SQL 语句来实现一些基本的操作:
- 向 books 表中添加新的图书记录:
```
INSERT INTO books (id, title, author, publish_date, total, available)
VALUES (1, 'The Great Gatsby', 'F. Scott Fitzgerald', '1925-04-10', 5, 5);
```
- 向 borrowers 表中添加新的借阅者记录:
```
INSERT INTO borrowers (id, name, email, phone)
VALUES (1, 'John Smith', 'john.smith@example.com', '555-1234');
```
- 向 borrowings 表中添加新的借阅记录:
```
INSERT INTO borrowings (id, book_id, borrower_id, borrow_date, return_date)
VALUES (1, 1, 1, '2021-01-01', NULL);
```
- 查询所有在借图书:
```
SELECT books.title, books.author, borrowings.borrow_date, borrowings.return_date
FROM borrowings
INNER JOIN books ON borrowings.book_id = books.id
WHERE borrowings.return_date IS NULL;
```
- 查询某个借阅者借了哪些书:
```
SELECT books.title, books.author, borrowings.borrow_date, borrowings.return_date
FROM borrowings
INNER JOIN books ON borrowings.book_id = books.id
WHERE borrowings.borrower_id = 1;
```
- 更新 borrowings 表中某条借阅记录的归还日期:
```
UPDATE borrowings
SET return_date = '2021-02-01'
WHERE id = 1;
```
以上是一个简单的图书借阅管理系统的 SQL 实现,实际应用中可能会更加复杂,但是这里提供的代码可以作为一个基本的参考。
阅读全文