Практика 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` — мощный инструмент, который позволяет объединять данные из нескольких таблиц в одном запросе.