Практическая JOIN
Цель работы
- Научиться объединять данные из нескольких таблиц.
- Освоить основные виды JOIN: INNER, LEFT, RIGHT, FULL, CROSS.
- Понять, как связи между таблицами влияют на результат запроса.
- Научиться применять JOIN к собственной базе данных.
Ход работы
Задание 1. INNER JOIN — получение связанных данных
- Выберите две связанные таблицы (например, Students и Groups).
- Составьте запрос с INNER JOIN, который выводит данные из обеих таблиц.
- Выберите 3–5 столбцов, которые имеют смысл вместе.
Задание 2. LEFT JOIN — показать записи без связей
- Выполните запрос с LEFT JOIN.
- Определите, какие записи из левой таблицы не имеют соответствия в правой.
- Добавьте условие
WHERE, чтобы отфильтровать только те строки, где правые поля равныNULL.
Задание 3. RIGHT JOIN
- Выполните запрос с RIGHT JOIN.
- Определите, какие записи из правой таблицы не имеют соответствия в левой.
Если ваша СУБД не поддерживает RIGHT JOIN, выполните аналог с LEFT JOIN, поменяв таблицы местами.
Задание 4. FULL JOIN (если поддерживается)
- Выполните запрос FULL JOIN между двумя таблицами.
- Определите:
- записи, которые есть в обеих таблицах;
- записи, которые есть только в левой таблице;
- записи, которые есть только в правой таблице.
Если FULL JOIN в вашей СУБД нет → пропустите или выполните два запроса (LEFT + RIGHT).
Задание 5. Комбинированные JOIN
Создайте запрос, который объединяет три таблицы, используя два JOIN подряд. Например:
- студенты → группы → специальности,
- товары → категории → поставщики,
- книги → авторы → издательства.
Задание 6. CROSS JOIN — декартово произведение
- Выполните запрос CROSS JOIN между двумя небольшими таблицами.
- Определите, сколько строк получилось.
- Объясните, почему именно столько.
Используйте таблицы с небольшим количеством записей (например, 3 × 4 = 12).
Задание 7. JOIN + фильтрация результатов
Создайте запрос, который использует JOIN и одновременно условия WHERE. Например:
- студенты определённой группы;
- товары определённой категории;
- книги определённого автора.
Требования к отчёту
Отчёт должен содержать:
- Тему.
- Краткое описание своей базы данных (что за предметная область, какие таблицы используются).
- Для каждого задания:
- Используемые таблицы
- SQL запрос + описание,
- Результат.