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:

PostgreSQL Dołącz do Thety

Cena:

PostgreSQL Dołącz do Thety

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:

PostgreSQL Dołącz do Thety

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:

PostgreSQL Dołącz do EQUI

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:

PostgreSQL Naturalne połączenie

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:

Postgres opuścił zewnętrzne połączenie

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:

Prawe złącze zewnętrzne Postgres

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:

Pełne połączenie zewnętrzne Postgres

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

  1. Na pasku nawigacyjnym po lewej stronie kliknij opcję Bazy danych.
  2. Kliknij opcję Demo.

Wewnętrzne połączenie pgAdmin

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

Wewnętrzne połączenie pgAdmin

Powinno zostać zwrócone:

Wewnętrzne połączenie pgAdmin

Dołącz do EQUI

Krok 1) Zaloguj się na swoje konto pgAdmin.

Krok 2)

  1. Na pasku nawigacyjnym po lewej stronie kliknij opcję Bazy danych.
  2. Kliknij opcję Demo.

pgAdmin EQUI Dołącz

Krok 3) Wpisz zapytanie w edytorze zapytań:

SELECT *
FROM Book 
JOIN Price ON Book.id = Price.id;

Krok 4) Kliknij przycisk Wykonaj.

pgAdmin EQUI Dołącz

Powinno zostać zwrócone:

pgAdmin EQUI Dołącz

Naturalne połączenie

Krok 1) Zaloguj się na swoje konto pgAdmin.

Krok 2)

  1. Na pasku nawigacyjnym po lewej stronie kliknij opcję Bazy danych.
  2. Kliknij opcję Demo.

pgAdmin Naturalne dołączenie

Krok 3) Wpisz zapytanie w edytorze zapytań:

SELECT *
FROM Book 
NATURAL JOIN Price;

Krok 4) Kliknij przycisk Wykonaj.

pgAdmin Naturalne dołączenie

Powinno zostać zwrócone:

pgAdmin Naturalne dołączenie

pgAdmin Proste połączenie wewnętrzne

Krok 1) Zaloguj się na swoje konto pgAdmin.

Krok 2)

  1. Na pasku nawigacyjnym po lewej stronie kliknij opcję Bazy danych.
  2. Kliknij opcję Demo.

pgAdmin Proste połączenie wewnętrzne

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.

pgAdmin Proste połączenie wewnętrzne

Powinno zostać zwrócone:

pgAdmin Proste połączenie wewnętrzne

Połączenie zewnętrzne pgAdmin

Lewe połączenie zewnętrzne

Krok 1) Zaloguj się na swoje konto pgAdmin.

Krok 2)

  1. Na pasku nawigacyjnym po lewej stronie kliknij opcję Bazy danych.
  2. Kliknij opcję Demo.

pgAdmin opuścił zewnętrzne połączenie

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.

pgAdmin opuścił zewnętrzne połączenie

Powinno zostać zwrócone:

pgAdmin opuścił zewnętrzne połączenie

Prawe połączenie zewnętrzne

Krok 1) Zaloguj się na swoje konto pgAdmin.

Krok 2)

  1. Na pasku nawigacyjnym po lewej stronie kliknij opcję Bazy danych.
  2. Kliknij opcję Demo.

pgAdmin Prawe połączenie zewnętrzne

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.

pgAdmin Prawe połączenie zewnętrzne

Powinno zostać zwrócone:

pgAdmin Prawe połączenie zewnętrzne

Pełne połączenie zewnętrzne

Krok 1) Zaloguj się na swoje konto pgAdmin.

Krok 2)

  1. Na pasku nawigacyjnym po lewej stronie kliknij opcję Bazy danych.
  2. Kliknij opcję Demo.

pgAdmin Pełne połączenie zewnętrzne

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.

pgAdmin Pełne połączenie zewnętrzne

Powinno zostać zwrócone:

pgAdmin Pełne połączenie zewnętrzne

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