DROP DATABASE IF EXISTS LibraryDB;
CREATE DATABASE LibraryDB;
USE LibraryDB;
SET SQL_SAFE_UPDATES = 0;
CREATE TABLE authors (
id INT PRIMARY KEY,
name VARCHAR(100),
country VARCHAR(50),
birth_year INT
);
CREATE TABLE books (
id INT PRIMARY KEY,
title VARCHAR(200),
pages INT,
price DECIMAL(10,2),
genre VARCHAR(50),
pub_year INT
);
CREATE TABLE book_author (
book_id INT,
author_id INT,
FOREIGN KEY (book_id) REFERENCES books(id),
FOREIGN KEY (author_id) REFERENCES authors(id),
PRIMARY KEY (book_id, author_id)
);
CREATE TABLE readers (
id INT PRIMARY KEY,
name VARCHAR(100),
age INT,
city VARCHAR(50),
registration_date DATE
);
CREATE TABLE issue (
id INT PRIMARY KEY,
book_id INT,
reader_id INT,
issue_date DATE,
return_date DATE,
rating INT,
fine DECIMAL(10,2),
FOREIGN KEY (book_id) REFERENCES books(id),
FOREIGN KEY (reader_id) REFERENCES readers(id)
);
INSERT INTO authors (id, name, country, birth_year) VALUES
(1, 'Лев Толстой', 'RU', 1828),
(2, 'Фёдор Достоевский', 'RU', 1821),
(3, 'Джейн Остин', 'UK', 1775),
(4, 'Дж. Р. Р. Толкин', 'UK', 1892),
(5, 'Дж. К. Роулинг', 'UK', 1965),
(6, 'Антуан де Сент-Экзюпери', 'FR', 1900),
(7, 'Уильям Шекспир', 'UK', 1564),
(8, 'Марк Твен', 'US', 1835);
INSERT INTO books (id, title, pages, price, genre, pub_year) VALUES
(1, 'Война и мир', 1400, 25.50, 'Роман', 1869),
(2, 'Преступление и наказание', 670, 18.00, 'Роман', 1866),
(3, 'Гордость и предубеждение', 432, 15.99, 'Роман', 1813),
(4, 'Властелин колец', 1178, 35.00, 'Фэнтези', 1954),
(5, 'Гарри Поттер и философский камень', 223, 12.50, 'Фэнтези', 1997),
(6, 'Маленький принц', 96, 8.99, 'Сказка', 1943),
(7, 'Гамлет', 350, 10.50, 'Драма', 1603),
(8, 'Приключения Гекльберри Финна', 366, 14.00, 'Приключения', 1884);
INSERT INTO book_author (book_id, author_id) VALUES
(1, 1), (1, 2), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8);
INSERT INTO readers (id, name, age, city, registration_date) VALUES
(1, 'Иван Петров', 25, 'Москва', '2024-01-15'),
(2, 'Мария Сидорова', 32, 'СПб', '2023-11-20'),
(3, 'Алексей Иванов', 28, 'Казань', '2024-03-10'),
(4, 'Елена Козлова', 22, 'Москва', '2025-09-01'),
(5, 'Дмитрий Смирнов', 45, 'Екатеринбург', '2023-05-12');
INSERT INTO issue (id, book_id, reader_id, issue_date, return_date, rating, fine) VALUES
(1, 1, 1, '2026-01-10', '2026-02-05', 10, 0.00),
(2, 2, 2, '2026-02-01', NULL, NULL, 5.00),
(3, 3, 1, '2026-03-15', '2026-04-10', 8, 0.00),
(4, 4, 3, '2026-04-01', NULL, NULL, 0.00),
(5, 5, 4, '2026-03-20', '2026-04-15', 9, 2.50),
(6, 1, 5, '2026-01-20', '2026-02-10', 7, 0.00),
(7, 5, 5, '2026-01-09', NULL, NULL, 0.00),
(8, 4, 1, '2025-06-15', NULL, NULL, 8.03),
(9, 7, 5, '2025-06-06', '2026-03-25', 1, 1.15),
(10, 8, 4, '2026-01-14', NULL, NULL, 0.77),
(11, 2, 4, '2025-12-10', NULL, NULL, 0.00),
(12, 6, 5, '2026-04-12', NULL, NULL, 0.00),
(13, 2, 2, '2025-10-01', NULL, NULL, 0.58),
(14, 4, 1, '2025-10-14', NULL, NULL, 0.00),
(15, 4, 4, '2025-06-17', NULL, NULL, 0.00);