Загрузка данных
-- Очистка таблиц (если нужно перезаполнить)
-- TRUNCATE TABLE orders CASCADE;
-- TRUNCATE TABLE book_writer CASCADE;
-- TRUNCATE TABLE contract CASCADE;
-- TRUNCATE TABLE book CASCADE;
-- TRUNCATE TABLE customer CASCADE;
-- TRUNCATE TABLE writer CASCADE;
-- 1. Писатели
INSERT INTO writer (passport_no, last_name, first_name, middle_name, address, phone) VALUES
('1234-567890', 'Иванов', 'Иван', 'Иванович', 'г. Москва, ул. Ленина, д. 1, кв. 5', '+79001234567'),
('2345-678901', 'Петров', 'Пётр', 'Петрович', 'г. Москва, ул. Пушкина, д. 2, кв. 10', '+79007654321'),
('3456-789012', 'Сидоров', 'Сергей', 'Сергеевич', 'г. Санкт-Петербург, Невский пр., д. 5, кв. 12', '+78123456789'),
('4567-890123', 'Козлова', 'Елена', 'Ивановна', 'г. Казань, ул. Баумана, д. 3, кв. 8', '+78431234567');
-- 2. Контракты
INSERT INTO contract (writer_passport, sign_date, term_years, restaurant_flag, restaurant_date) VALUES
('1234-567890', '2025-01-01', 3, FALSE, NULL),
('2345-678901', '2025-02-01', 2, TRUE, '2025-02-01'),
('3456-789012', '2025-03-01', 1, FALSE, NULL),
('4567-890123', '2025-01-15', 2, FALSE, NULL);
-- 3. Книги
INSERT INTO book (book_code, title, publisher, release_date, cost_price, sale_price, royalty_total) VALUES
('B001', 'Война и мир', 'Издательство "Наука"', '2025-03-10', 500.00, 1200.00, 300.00),
('B002', 'Анна Каренина', 'Издательство "Художественная литература"', '2025-04-05', 400.00, 1100.00, 250.00),
('B003', 'Преступление и наказание', 'Издательство "Эксмо"', '2025-05-15', 350.00, 950.00, 200.00),
('B004', 'Мастер и Маргарита', 'Издательство "АСТ"', '2025-06-20', 450.00, 1300.00, 280.00),
('B005', 'Тихий Дон', 'Издательство "Дрофа"', '2025-07-01', 380.00, 1000.00, 220.00);
-- 4. Связь писатель-книга
INSERT INTO book_writer (book_code, writer_passport) VALUES
('B001', '1234-567890'), -- Война и мир написал Иванов
('B001', '2345-678901'), -- Война и мир написал Петров (соавтор)
('B002', '1234-567890'), -- Анна Каренина написал Иванов
('B003', '2345-678901'), -- Преступление и наказание написал Петров
('B004', '3456-789012'), -- Мастер и Маргарита написал Сидоров
('B005', '4567-890123'); -- Тихий Дон написала Козлова
-- 5. Заказчики
INSERT INTO customer (name, address, phone, contact_person) VALUES
('ООО "Книжный мир"', 'г. Москва, ул. Тверская, д. 15', '+74951234567', 'Сидорова Анна Алексеевна'),
('ГБУК "Библиотека №1"', 'г. Санкт-Петербург, Невский пр., д. 10', '+78121234567', 'Кузнецов Борис Борисович'),
('ИП Иванова Е.М.', 'г. Казань, ул. Кремлевская, д. 8', '+78431234568', 'Иванова Елена Михайловна'),
('ООО "Книги-Маркет"', 'г. Новосибирск, пр. Красный, д. 20', '+73831234567', 'Петров Сергей Николаевич'),
('МБУК "Дом книги"', 'г. Екатеринбург, ул. Ленина, д. 5', '+73431234567', 'Смирнов Александр Петрович');
-- 6. Заказы
INSERT INTO orders (book_code, customer_id, order_date, execute_date, quantity) VALUES
('B001', 1, '2025-03-12', '2025-03-25', 100),
('B001', 2, '2025-03-15', '2025-03-28', 50),
('B002', 1, '2025-04-08', '2025-04-20', 200),
('B003', 3, '2025-05-18', '2025-05-30', 75),
('B003', 4, '2025-05-20', '2025-06-01', 120),
('B004', 2, '2025-06-22', NULL, 30), -- ещё не выполнен
('B004', 5, '2025-06-25', NULL, 45), -- ещё не выполнен
('B005', 1, '2025-07-05', '2025-07-15', 60),
('B005', 3, '2025-07-08', NULL, 80); -- ещё не выполнен
-- Проверка данных
SELECT 'Писатели:' AS "Таблица", COUNT(*) AS "Количество" FROM writer UNION ALL
SELECT 'Контракты:', COUNT(*) FROM contract UNION ALL
SELECT 'Книги:', COUNT(*) FROM book UNION ALL
SELECT 'Связи книг и писателей:', COUNT(*) FROM book_writer UNION ALL
SELECT 'Заказчики:', COUNT(*) FROM customer UNION ALL
SELECT 'Заказы:', COUNT(*) FROM orders;
-- Вывод всех заказов (для проверки)
SELECT
o.order_id AS "Номер заказа",
c.name AS "Заказчик",
b.title AS "Книга",
o.quantity AS "Количество",
o