PostgreSQL Типи з'єднань: внутрішнє, зовнішнє, ліве, праве
⚡ Розумний підсумок
PostgreSQL Об'єднання витягують та об'єднують рядки з двох або більше таблиць за допомогою спільного ключа, включаючи внутрішні об'єднання, такі як тета, EQUI та натуральні, а також зовнішні об'єднання, що охоплюють ліві, праві та повні результати.
Що таке приєднання PostgreSQL?
PostgreSQL з'єднання використовуються для отримання даних з кількох таблиць. За допомогою об'єднань ми можемо об'єднати оператори SELECT та JOIN в один оператор. До оператора додається умова JOIN, і повертаються всі рядки, що відповідають умовам. Значення з різних таблиць об'єднуються на основі спільних стовпців. Спільний стовпець здебільшого є первинним ключем у першій таблиці та зовнішнім ключем другої таблиці.
PostgreSQL Типи з'єднань
Існує два типи об’єднань PostgreSQL:
- Внутрішні об'єднання
- Зовнішні об'єднання
PostgreSQL Внутрішнє з'єднання
Існує 3 типи внутрішніх з’єднань PostgreSQL:
- Тета-приєднання
- Природне приєднання
- Приєднатися до EQUI
Тета приєднатися
Тета-з'єднання дозволяє об'єднати дві таблиці на основі умови, яка представлена тета. Тета-об'єднання можуть працювати з усіма операторами порівняння. У більшості випадків тета-з'єднання називають внутрішнім з'єднанням.
Тета-об'єднання є основним типом JOIN. Він поверне всі рядки з таблиць, де виконується умова JOIN.
Синтаксис:
SELECT columns FROM table-1 INNER JOIN table-2 ON table-1.column = table-2.column;
Розглянемо наступні таблиці бази даних Demo:
Книга:
Ціна:
Ми хочемо бачити назву кожної книги та відповідну ціну. Ми можемо виконати таку команду:
SELECT Book.name, Price.price FROM Book INNER JOIN Price ON Book.id = Price.id;
Це поверне наступне:
Лише 3 рядки задовольняли умову об’єднання.
EQUI Приєднуйтесь
Об’єднання EQUI надає нам спосіб об’єднання двох таблиць на основі зв’язку первинний/зовнішній ключ. Наприклад:
SELECT * FROM Book JOIN Price ON Book.id = Price.id;
Це поверне наступне:
Записи повернуто з обох таблиць на основі загальних стовпців, тобто стовпця id.
Природне приєднання
Цей тип об’єднання надає нам інший спосіб написання об’єднання EQUI. Ми можемо покращити наш попередній приклад, додавши ключове слово NATURAL, як показано нижче:
SELECT * FROM Book NATURAL JOIN Price;
Це поверне наступне:
Повернено лише один стовпець ідентифікатора. NATURAL JOIN вдалося помітити, що стовпець id є загальним у двох таблицях. Повернули лише одну.
PostgreSQL Зовнішнє приєднання
Існує 3 типи зовнішніх з’єднань PostgreSQL:
- Зліва Зовнішнє приєднання
- Правильне зовнішнє приєднання
- Повне Зовнішнє Приєднання
PostgreSQL Зліва Зовнішнє приєднання
LEFT OUTER JOIN поверне всі рядки в таблиці ліворуч і лише ті рядки правої сторони таблиці, де умова об’єднання була задоволена.
Синтаксис:
SELECT columns FROM table-1 LEFT OUTER JOIN table-2 ON table-1.column = table-2.column;
Нам потрібно побачити назву кожної книги та відповідну ціну. Ми можемо виконати таку команду:
SELECT Book.name, Price.price FROM Book LEFT JOIN Price ON Book.id = Price.id;
Це повертає наступне:
Повернено всі 4 рядки в таблиці Book. Лише 3 рядки з таблиці Price відповідали умові об’єднання. Тому їх повернули. Остання книга не має відповідного цінового значення.
PostgreSQL Правильне зовнішнє приєднання
RIGHT OUTER JOIN повертає всі рядки в таблиці з правого боку та рядки в таблиці з лівого боку, де умова з’єднання була задоволена.
Синтаксис:
SELECT columns FROM table-1 RIGHT OUTER JOIN table-2 ON table-1.column = table-2.column;
Наприклад:
SELECT Book.name, Price.price FROM Book RIGHT JOIN Price ON Book.id = Price.id;
Це повертає наступне:
Повернуто всі рядки таблиці Price. Повернуто лише рядки таблиці Book, які відповідали умові об'єднання. Третій рядок не має значення для name, оскільки збігів не знайдено.
Повне зовнішнє приєднання PostgreSQL
Цей тип JOIN поверне всі рядки в таблиці ліворуч і всі рядки таблиці праворуч з нулями, якщо умова об’єднання не виконується.
Синтаксис:
SELECT columns FROM table-1 FULL OUTER JOIN table-2 ON table-1.column = table-2.column;
Наприклад:
SELECT Book.name, Price.price FROM Book FULL OUTER JOIN Price ON Book.id = Price.id;
Це повертає наступне:
Повернено всі рядки з усіх таблиць із нулями, де не було знайдено збігів.
Використання pgAdmin
Вищезазначені завдання можна виконати в pgAdmin наступним чином. У наступних розділах крок за кроком описано кожен тип об'єднання.
Внутрішнє приєднання pgAdmin
Наведені нижче кроки показують, як запустити кожен варіант внутрішнього об'єднання в pgAdmin.
Як використовувати Theta Приєднуйтесь PostgreSQL за допомогою pgAdmin
Нижче наведено кроки для використання Theta Join PostgreSQL за допомогою pgAdmin:
Крок 1) Увійдіть у свій обліковий запис pgAdmin
Відкрийте pgAdmin і увійдіть, використовуючи свої облікові дані
Крок 2) Створіть демонстраційну базу даних
- На панелі навігації ліворуч натисніть Бази даних.
- Натисніть Демо.
Крок 3) Введіть запит
Введіть наведений нижче запит у редакторі запитів:
SELECT Book.name, Price.price FROM Book INNER JOIN Price ON Book.id = Price.id;
Крок 4) Виконайте запит
Натисніть кнопку Виконати
Він повинен повернути наступне:
EQUI Приєднуйтесь
Крок 1) Увійдіть у свій обліковий запис pgAdmin.
Крок 2)
- На панелі навігації ліворуч натисніть Бази даних.
- Натисніть Демо.
Крок 3) Введіть запит у редакторі запитів:
SELECT * FROM Book JOIN Price ON Book.id = Price.id;
Крок 4) Натисніть кнопку Виконати.
Він повинен повернути наступне:
Природне приєднання
Крок 1) Увійдіть у свій обліковий запис pgAdmin.
Крок 2)
- На панелі навігації ліворуч натисніть Бази даних.
- Натисніть Демо.
Крок 3) Введіть запит у редакторі запитів:
SELECT * FROM Book NATURAL JOIN Price;
Крок 4) Натисніть кнопку Виконати.
Він повинен повернути наступне:
pgAdmin Просте внутрішнє об’єднання
Крок 1) Увійдіть у свій обліковий запис pgAdmin.
Крок 2)
- На панелі навігації ліворуч натисніть Бази даних.
- Натисніть Демо.
Крок 3) Введіть запит у редакторі запитів:
SELECT Book.name, Price.price FROM Book INNER JOIN Price ON Book.id = Price.id;
Крок 4) Натисніть кнопку Виконати.
Він повинен повернути наступне:
Зовнішнє приєднання pgAdmin
Далі запустіть три варіанти зовнішнього з'єднання в pgAdmin, виконавши наведені нижче кроки.
Зліва Зовнішнє приєднання
Крок 1) Увійдіть у свій обліковий запис pgAdmin.
Крок 2)
- На панелі навігації ліворуч натисніть Бази даних.
- Натисніть Демо.
Крок 3) Введіть запит у редакторі запитів:
SELECT Book.name, Price.price FROM Book LEFT JOIN Price ON Book.id = Price.id;
Крок 4) Натисніть кнопку Виконати.
Він повинен повернути наступне:
Правильне зовнішнє приєднання
Крок 1) Увійдіть у свій обліковий запис pgAdmin.
Крок 2)
- На панелі навігації ліворуч натисніть Бази даних.
- Натисніть Демо.
Крок 3) Введіть запит у редакторі запитів:
SELECT Book.name, Price.price FROM Book RIGHT JOIN Price ON Book.id = Price.id;
Крок 4) Натисніть кнопку Виконати.
Він повинен повернути наступне:
Повне Зовнішнє Приєднання
Крок 1) Увійдіть у свій обліковий запис pgAdmin.
Крок 2)
- На панелі навігації ліворуч натисніть Бази даних.
- Натисніть Демо.
Крок 3) Введіть запит у редакторі запитів:
SELECT Book.name, Price.price FROM Book FULL OUTER JOIN Price ON Book.id = Price.id;
Крок 4) Натисніть кнопку Виконати.
Він повинен повернути наступне:
Завантажте базу даних, яка використовується в цьому посібнику






























