Загрузка данных


-- =====================================================================
-- ЗАДАНИЕ 4. Простые запросы на выборку (Выборка из 2-х таблиц)
-- =====================================================================

-- Запрос 4.1: Список выданных книг с именами читателей, которые их взяли
SELECT r.full_name AS 'Читатель', b.title AS 'Название книги', bl.loan_date AS 'Дата выдачи'
FROM book_loans bl
JOIN readers r ON bl.ticket_number = r.ticket_number
JOIN books b ON bl.id_book = b.id_book;

-- Запрос 4.2: Вывод списка книг и сотрудников, которые оформляли на них вкладыши
SELECT e.full_name AS 'Сотрудник', b.title AS 'Выданная книга'
FROM book_loans bl
JOIN employees e ON bl.id_employee = e.id_employee
JOIN books b ON bl.id_book = b.id_book;


-- =====================================================================
-- ЗАДАНИЕ 5. Сложные запросы на выборку (Минимум 3 таблицы + агрегаты)
-- =====================================================================

-- Запрос 5.1: Полная информация по активным (не возвращенным) выдачам: кто взял, что взял и какой сотрудник оформил
SELECT 
    r.full_name AS 'ФИО Читателя', 
    b.title AS 'Название Книги', 
    e.full_name AS 'Выдал Сотрудник', 
    bl.loan_date AS 'Взято от'
FROM book_loans bl
JOIN readers r ON bl.ticket_number = r.ticket_number
JOIN books b ON bl.id_book = b.id_book
JOIN employees e ON bl.id_employee = e.id_employee
WHERE bl.is_returned = FALSE;

-- Запрос 5.2: Подсчет общего количества книг, взятых каждым читателем за всё время, и их общая стоимость
SELECT 
    r.full_name AS 'Читатель', 
    COUNT(bl.id_loan) AS 'Всего книг взял', 
    SUM(b.price) AS 'Общая стоимость книг (руб.)'
FROM book_loans bl
JOIN readers r ON bl.ticket_number = r.ticket_number
JOIN books b ON bl.id_book = b.id_book
GROUP BY r.ticket_number, r.full_name;


-- =====================================================================
-- ЗАДАНИЕ 6. Запрос на обновление данных
-- =====================================================================
-- Ситуация: Читатель вернул книгу. Обновляем статус вкладыша (ставим отметку о возврате и дату)
UPDATE book_loans 
SET is_returned = TRUE, return_date = '2026-06-26' 
WHERE ticket_number = 1 AND id_book = 2 AND is_returned = FALSE;


-- =====================================================================
-- ЗАДАНИЕ 7. Запрос на удаление данных
-- =====================================================================
-- Ситуация: Книга "Совершенный код" была списана (утеряна/ветхость), удаляем её из каталога
DELETE FROM books 
WHERE title = 'Совершенный код';