🎯 Мета роботи

Навчитися будувати складні конструкції SELECT для вибірки даних із кількох таблиць.

✅ Завдання

  1. Навести по два приклади виконання внутрішнього (INNER JOIN) та зовнішнього (LEFT JOIN і RIGHT JOIN) з’єднання таблиць. Продемонструвати різницю між ними.
  2. Зареєструватись на сайті https://www.hackerrank.com/ та виконати завдання, зазначені в ході роботи.
  3. У звіті виконати словесний опис кожного запиту, навести лістинг та результат виконання.

🖥️ Програмне забезпечення

ℹ️ Теоретичні відомості

При вибірці даних з БД часто потрібні дані містяться в кількох таблицях, пов’язаних між собою за допомогою спільних полів і відношень між ними. Для того, щоб вибрати дані з кількох таблиць і мати можливість використовувати при цьому засоби SQL для обробки даних (фільтрації, пошуку, групування, використання агрегатних функцій тощо) використовують об’єднання кількох таблиць в одну, згідно з певними критеріями. Результат об’єднання існує тільки y момент виконання запиту.

При виборі однієї таблиці в іменах стовпців не вказують імені таблиці — джерела даних. При об’єднанні таблиць часто трапляється, що різні таблиці мають поля з однаковими іменами. Щоб СУБД могла розрізнити такі поля, при виконанні запиту слід використовувати повне ім’я поля.

З’єднання таблиць дозволяє робити конструкція JOIN. Вона може мати один з таких форматів:

<таблиця> INNER JOIN <таблиця> [ON <умова>]
<таблиця> LEFT | RIGHT [OUTER] JOIN <таблиця> ON <умова>

де під <таблиця> розуміють таку конструкцію:

<Ім'я таблиці> [[AS ] псевдонім]

Псевдоніми вживаються для того, щоб скоротити назву таблиці при використанні в іменах полів, якщо вона надто довга (інакше запит буде дуже громіздкий), або щоб можна було виконати об’єднання таблиці з цією ж таблицею (у цьому випадку без псевдонімів, навіть при використанні імені таблиці, не можна розрізнити полів).

Розглянемо приклади виконання запитів з JOIN (зауважимо, що БД employees, яка використовується для виконання роботи має не таку структуру, як наведена в прикладах, тому результат може відрізнятись або виникатиме помилка):

INNER JOIN

Ключове слово INNER JOIN вибирає записи, які мають відповідні значення в обох таблицях.