Практична робота №15. Складання запитів із внутрішніми та зовнішніми JOIN
Мета
Навчитися з'єднувати таблиці операторами INNER, LEFT, RIGHT, FULL JOIN та пояснювати вплив зовнішніх з'єднань на результат.
Підготовка
Перед виконанням опрацюйте пов'язану лекцію:
Завдання
- Підготуйте дані: таблиці
departments,courses,enrollmentsтаstudents(додайте таблицю студентів із практичної №9, якщо її немає), наповніть їх даними, зокрема курсом без підрозділу або реєстраціями без студента для демонстрації зовнішніх JOIN. - Виконайте
INNER JOINі поясніть, які рядки зникають:
SELECT d.name AS department, c.title AS course
FROM college.courses AS c
JOIN college.departments AS d USING (department_id)
ORDER BY d.name;
- Виконайте
LEFT JOINвідdepartmentsдоcoursesта поясніть рядки зNULL. - Виконайте
RIGHT JOINтаFULL JOINдля тих самих таблиць. Для кожного запиту запишіть, які рядки додаються порівняно з попереднім. - Побудуйте звіт «студент — курс — оцінка» із використанням двох JOIN.
- Покажіть різницю між
USINGіONна прикладі та поясніть, як вибір впливає на стовпці результату.
Вимоги до результату
- SQL-скрипт
join.sqlіз запитами та коментарями. - Для кожного типу JOIN: запит, результат, пояснення зниклих/доданих рядків.
- Приклад із
USINGтаON.
Питання для захисту
- Що повертає
LEFT JOIN, якщо для лівого рядка немає пари? - Чим
INNER JOINвідрізняється відLEFT JOIN? - Коли доцільний
FULL JOIN? - Як запобігти помилковому множенню рядків при JOIN?
