Практика 7. Простые запросы на выборку

Цель

На этой практике мы будем извлекать данные из таблиц библиотечной базы, которую создали и наполнили в Практике 3. Цель — научиться использовать `SELECT`, `FROM`, `WHERE` и `ORDER BY` для получения осмысленной информации.

Все запросы нужно выполнять в вашей СУБД, подключившись к базе данных, с которой вы работали на предыдущих практиках.

Подготовка данных

Если после Практики 3 в вашей базе уже есть читатели, книги, авторы, авторство и выдачи, этот блок можно не выполнять. Если данных нет или их слишком мало для проверки запросов, выполните контрольное наполнение ниже. Оно использует только ранее созданные таблицы: Readers, Books, Authors, Book_Authors и Loans.

Скрипт рассчитан на пустые таблицы или на базу, где этих строк еще нет. Если вы уже добавляли такие же книги или телефоны, сначала сравните данные и не вставляйте дубликаты.

Задания

Для каждого задания напишите и выполните SQL-запрос, который решает поставленную задачу.

Задание 1: Вывести полный список читателей

Получите все данные из таблицы Readers. Посмотрите, какие столбцы есть в результате.

Задание 2: Вывести названия книг и годы издания

Из таблицы Books выведите только те столбцы, которые нужны для краткого каталога: название книги и год издания.

Задание 3: Найти книги XIX века

Выведите книги, год издания которых относится к XIX веку. В результате должны быть название и год издания.

Задание 4: Найти книги советского периода

Используйте проверку диапазона и найдите книги, изданные с 1917 по 1991 год включительно.

Задание 5: Найти читателя по номеру телефона

Выберите любого читателя из своих начальных данных и найдите его по точному номеру телефона. В запросе должно быть условие по столбцу phone.

Задание 6: Найти читателей по фрагменту ФИО

Используйте LIKE, чтобы найти читателей, у которых в ФИО встречается выбранный вами фрагмент: часть фамилии, имени или отчества.

Задание 7: Найти активные выдачи

Найдите записи в Loans, по которым книга еще не возвращена. Подумайте, какой столбец хранит этот признак.

Задание 8: Отсортировать книги по названию

Выведите каталог книг так, чтобы его было удобно читать: сначала название, затем год издания, строки отсортируйте по названию.

Задание 9: Показать ближайшие плановые возвраты

Выведите активные выдачи и отсортируйте их по планируемой дате возврата: от ближайшей даты к более поздней.

Задание 10: Найти ограниченный набор книг

Используйте сортировку и LIMIT, чтобы получить три книги по выбранному вами правилу: самые старые, самые новые или первые по алфавиту. В отчете укажите, какое правило сортировки вы выбрали.


Заключение

Отлично! Теперь вы умеете не только хранить данные, но и извлекать их, фильтровать и сортировать. Однако пока мы можем работать только с одной таблицей за раз.

На следующей лекции мы изучим `JOIN` — мощный инструмент, который позволяет объединять данные из нескольких таблиц в одном запросе.