PostgreSQL Typy połączeń: Wewnętrzne, Zewnętrzne, Lewe, Prawe
⚡ Inteligentne podsumowanie
PostgreSQL Połączenia umożliwiają pobieranie i łączenie wierszy z dwóch lub więcej tabel przy użyciu klucza współdzielonego. Obejmują one połączenia wewnętrzne, takie jak theta, EQUI i naturalne, a także połączenia zewnętrzne obejmujące wyniki lewe, prawe i pełne.

Czym są Joiny PostgreSQL?
PostgreSQL Łączy Służą do pobierania danych z więcej niż jednej tabeli. Dzięki połączeniom możliwe jest połączenie instrukcji SELECT i JOIN w jedną. Do instrukcji dodawany jest warunek JOIN, a wszystkie wiersze spełniające ten warunek są zwracane. Wartości z różnych tabel są łączone na podstawie wspólnych kolumn. Wspólna kolumna to zazwyczaj klucz podstawowy w pierwszej tabeli i klucz obcy w drugiej tabeli.
PostgreSQL Typy łączenia
Istnieją dwa rodzaje złączeń PostgreSQL:
- Połączenia wewnętrzne
- Połączenia zewnętrzne
PostgreSQL Połączenie wewnętrzne
Istnieją 3 typy połączeń wewnętrznych PostgreSQL:
- Dołącz do Theta
- Naturalne połączenie
- Dołącz do EQUI
Dołącz do Thety
Połączenie theta umożliwia połączenie dwóch tabel na podstawie warunku reprezentowanego przez theta. Połączenia theta mogą działać ze wszystkimi operatorami porównania. W większości przypadków połączenie theta jest nazywane połączeniem wewnętrznym.
Złączenie theta jest najbardziej podstawowym typem ŁĄCZENIA. Zwróci wszystkie wiersze z tabel, w których spełniony jest warunek JOIN.
Składnia:
SELECT columns FROM table-1 INNER JOIN table-2 ON table-1.column = table-2.column;
Rozważ następujące tabele bazy danych Demo:
Książka:
Cena:
Chcemy zobaczyć nazwę każdej książki i odpowiadającą jej cenę. Możemy uruchomić następujące polecenie:
SELECT Book.name, Price.price FROM Book INNER JOIN Price ON Book.id = Price.id;
Spowoduje to zwrócenie następujących informacji:
Tylko 3 wiersze spełniły warunek złączenia.
Dołącz do EQUI
Łączenie EQUI umożliwia nam łączenie dwóch tabel w oparciu o relację klucz podstawowy/klucz obcy. Na przykład:
SELECT * FROM Book JOIN Price ON Book.id = Price.id;
Spowoduje to zwrócenie następujących informacji:
Z obu tabel zwrócone zostały rekordy w oparciu o wspólne kolumny, czyli kolumnę id.
Naturalne połączenie
Ten typ złączenia zapewnia nam inny sposób pisania złączenia EQUI. Możemy ulepszyć nasz poprzedni przykład, dodając słowo kluczowe NATURAL, jak pokazano poniżej:
SELECT * FROM Book NATURAL JOIN Price;
Spowoduje to zwrócenie następujących informacji:
Została zwrócona tylko jedna kolumna identyfikatora. Funkcja NATURAL JOIN zauważyła, że kolumna id jest wspólna w obu tabelach. Zwrócono tylko jednego.
PostgreSQL Połączenie zewnętrzne
Istnieją 3 typy złączeń zewnętrznych PostgreSQL:
- Lewe połączenie zewnętrzne
- Prawe połączenie zewnętrzne
- Pełne połączenie zewnętrzne
PostgreSQL Lewe połączenie zewnętrzne
LEFT OUTER JOIN zwróci wszystkie wiersze tabeli po lewej stronie i tylko te wiersze tabeli po prawej stronie, w których spełniony został warunek złączenia.
Składnia:
SELECT columns FROM table-1 LEFT OUTER JOIN table-2 ON table-1.column = table-2.column;
Musimy zobaczyć nazwę każdej książki i odpowiadającą jej cenę. Możemy uruchomić następujące polecenie:
SELECT Book.name, Price.price FROM Book LEFT JOIN Price ON Book.id = Price.id;
To zwraca następujące informacje:
Wszystkie 4 wiersze w tabeli Book zostały zwrócone. Tylko 3 wiersze z tabeli Cen spełniły warunek złączenia. Dlatego zostały zwrócone. Ostatnia książka nie ma odpowiadającej jej wartości cenowej.
PostgreSQL Prawe połączenie zewnętrzne
RIGHT OUTER JOIN zwraca wszystkie wiersze tabeli po prawej stronie i wiersze tabeli po lewej stronie, w których spełniony został warunek złączenia.
Składnia:
SELECT columns FROM table-1 RIGHT OUTER JOIN table-2 ON table-1.column = table-2.column;
Na przykład:
SELECT Book.name, Price.price FROM Book RIGHT JOIN Price ON Book.id = Price.id;
To zwraca następujące informacje:
Zwrócono wszystkie wiersze z tabeli „Cena”. Zwrócono tylko wiersze z tabeli „Książka”, które spełniły warunek łączenia. Trzeci wiersz nie zawiera wartości dla nazwy, ponieważ nie znaleziono dopasowania.
Pełne zewnętrzne dołączenie PostgreSQL
Ten typ JOIN zwróci wszystkie wiersze tabeli po lewej stronie i wszystkie wiersze tabeli po prawej stronie z wartościami null, jeśli warunek złączenia nie jest spełniony.
Składnia:
SELECT columns FROM table-1 FULL OUTER JOIN table-2 ON table-1.column = table-2.column;
Na przykład:
SELECT Book.name, Price.price FROM Book FULL OUTER JOIN Price ON Book.id = Price.id;
To zwraca następujące informacje:
Zwrócone zostały wszystkie wiersze ze wszystkich tabel, z wartościami null w przypadku braku dopasowania.
Korzystanie z pgAdmina
Powyższe zadania można wykonać w pgAdmin w następujący sposób. Poniższe sekcje opisują krok po kroku każdy typ łączenia.
Wewnętrzne połączenie pgAdmin
Poniższe kroki pokazują, jak uruchomić każdą odmianę łączenia wewnętrznego w pgAdmin.
Jak korzystać z Theta Dołącz PostgreSQL za pomocą pgAdmina
Poniżej przedstawiono kroki korzystania z funkcji Theta Join PostgreSQL używając pgAdmina:
Krok 1) Zaloguj się na swoje konto pgAdmin
Otwórz pgAdmin i zaloguj się, używając swoich danych uwierzytelniających
Krok 2) Utwórz bazę danych Demo
- Na pasku nawigacyjnym po lewej stronie kliknij opcję Bazy danych.
- Kliknij opcję Demo.
Krok 3) Wpisz zapytanie
Wpisz poniższe zapytanie w edytorze zapytań:
SELECT Book.name, Price.price FROM Book INNER JOIN Price ON Book.id = Price.id;
Krok 4) Wykonaj zapytanie
Kliknij przycisk Wykonaj
Powinno zostać zwrócone:
Dołącz do EQUI
Krok 1) Zaloguj się na swoje konto pgAdmin.
Krok 2)
- Na pasku nawigacyjnym po lewej stronie kliknij opcję Bazy danych.
- Kliknij opcję Demo.
Krok 3) Wpisz zapytanie w edytorze zapytań:
SELECT * FROM Book JOIN Price ON Book.id = Price.id;
Krok 4) Kliknij przycisk Wykonaj.
Powinno zostać zwrócone:
Naturalne połączenie
Krok 1) Zaloguj się na swoje konto pgAdmin.
Krok 2)
- Na pasku nawigacyjnym po lewej stronie kliknij opcję Bazy danych.
- Kliknij opcję Demo.
Krok 3) Wpisz zapytanie w edytorze zapytań:
SELECT * FROM Book NATURAL JOIN Price;
Krok 4) Kliknij przycisk Wykonaj.
Powinno zostać zwrócone:
pgAdmin Proste połączenie wewnętrzne
Krok 1) Zaloguj się na swoje konto pgAdmin.
Krok 2)
- Na pasku nawigacyjnym po lewej stronie kliknij opcję Bazy danych.
- Kliknij opcję Demo.
Krok 3) Wpisz zapytanie w edytorze zapytań:
SELECT Book.name, Price.price FROM Book INNER JOIN Price ON Book.id = Price.id;
Krok 4) Kliknij przycisk Wykonaj.
Powinno zostać zwrócone:
Połączenie zewnętrzne pgAdmin
Następnie uruchom trzy warianty sprzężenia zewnętrznego w pgAdmin, wykonując poniższe kroki.
Lewe połączenie zewnętrzne
Krok 1) Zaloguj się na swoje konto pgAdmin.
Krok 2)
- Na pasku nawigacyjnym po lewej stronie kliknij opcję Bazy danych.
- Kliknij opcję Demo.
Krok 3) Wpisz zapytanie w edytorze zapytań:
SELECT Book.name, Price.price FROM Book LEFT JOIN Price ON Book.id = Price.id;
Krok 4) Kliknij przycisk Wykonaj.
Powinno zostać zwrócone:
Prawe połączenie zewnętrzne
Krok 1) Zaloguj się na swoje konto pgAdmin.
Krok 2)
- Na pasku nawigacyjnym po lewej stronie kliknij opcję Bazy danych.
- Kliknij opcję Demo.
Krok 3) Wpisz zapytanie w edytorze zapytań:
SELECT Book.name, Price.price FROM Book RIGHT JOIN Price ON Book.id = Price.id;
Krok 4) Kliknij przycisk Wykonaj.
Powinno zostać zwrócone:
Pełne połączenie zewnętrzne
Krok 1) Zaloguj się na swoje konto pgAdmin.
Krok 2)
- Na pasku nawigacyjnym po lewej stronie kliknij opcję Bazy danych.
- Kliknij opcję Demo.
Krok 3) Wpisz zapytanie w edytorze zapytań:
SELECT Book.name, Price.price FROM Book FULL OUTER JOIN Price ON Book.id = Price.id;
Krok 4) Kliknij przycisk Wykonaj.
Powinno zostać zwrócone:
Pobierz bazę danych używaną w tym samouczku





























