PostgreSQL Połącz typy z przykładami: wewnętrzny, zewnętrzny, lewy, prawy
Czym są Joiny PostgreSQL?
PostgreSQL Łączy służą do pobierania danych z więcej niż jednej tabeli. Dzięki Joins możliwe jest połączenie instrukcji SELECT i JOIN w jedną instrukcję. Do instrukcji dodawany jest warunek JOIN i zwracane są wszystkie wiersze spełniające te warunki. Wartości z różnych tabel są łączone w oparciu o wspólne kolumny. Wspólną kolumną jest głównie 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.
Zewnętrzne połączenie Postgres
Istnieją 3 typy złączeń zewnętrznych PostgreSQL:
- Lewe połączenie zewnętrzne
- Prawe połączenie zewnętrzne
- Pełne połączenie zewnętrzne
Postgres opuścił zewnętrzne połączenie
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.
Prawe złącze zewnętrzne Postgres
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:
Wszystkie wiersze w tabeli Cen zostały zwrócone. Zwrócone zostały tylko te wiersze tabeli Book, które spełniły warunek złączenia. 3rd wiersz nie ma 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:
Wewnętrzne połączenie pgAdmin
Jak korzystać z Theta Dołącz PostgreSQL za pomocą pgAdmina
Poniżej znajdują się kroki, aby użyć Theta Join w Postgres przy użyciu pgAdmin:
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
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:
Podsumowanie
- In PostgreSQL, używamy JOIN, gdy musimy pobrać wartości z więcej niż jednej tabeli.
- INNER JOIN jest najbardziej podstawowym typem JOIN. Zwraca wszystkie rekordy, w których spełniony został określony warunek JOIN.
- LEFT OUTER JOIN zwraca wszystkie wiersze z lewej tabeli i tylko te wiersze z drugiej tabeli, w których spełniony został warunek złączenia.
- RIGHT OUTER JOIN zwraca wszystkie wiersze z prawej tabeli i tylko te wiersze z drugiej tabeli, w których spełniony został warunek złączenia.
- Ten typ JOIN zwraca wszystkie wiersze tabeli po lewej stronie i wszystkie wiersze tabeli po prawej stronie zawierające wartości null, w przypadku których warunek złączenia nie jest spełniony.
Pobierz bazę danych używaną w tym samouczku