PostgreSQL Unia, Unia WSZYSTKO z przykładami

Czym jest PostgreSQL Unia?

PostgreSQL Operator UNION służy do łączenia zestawów wyników z więcej niż jednego polecenia SELECT w jeden zestaw wyników. Wszelkie duplikaty wierszy z wyników poleceń SELECT są eliminowane. Operator UNION działa w dwóch warunkach:

  • Zapytania SELECT MUSZĄ zwrócić podobną liczbę zapytań.
  • Typy danych wszystkich odpowiednich kolumn muszą być kompatybilne.

Operatora UNION używa się zazwyczaj do łączenia danych z powiązanych tabel, które nie zostały idealnie znormalizowane.

Składnia

SELECT expression_1, expression_2, ... expression_n
FROM tables
[WHERE condition(s)]
UNION
SELECT expression_1, expression_2, ... expression_n
FROM tables
[WHERE condition(s)];

Oto wyjaśnienie powyższych parametrów:

Wyrażenie_1, wyrażenie_2,… wyrażenie_n to obliczenia lub kolumny, które należy pobrać.

Tabele to tabele, z których należy pobrać rekordy.

Warunki WHERE to warunki, które muszą zostać spełnione, aby można było pobrać rekordy.

Uwaga: ponieważ operator UNION nie zwraca duplikatów, użycie UNION DISTINCT nie będzie miało wpływu na wyniki.

PostgreSQL Unia

Operator UNION usuwa duplikaty. Pokażmy to.

Posiadamy bazę danych o nazwie Demo zawierającą następujące tabele:

Książka:

PostgreSQL Unia

Cena:

PostgreSQL Unia

Uruchommy następujące polecenie:

SELECT id
FROM Book
UNION
SELECT id
FROM Price;

Polecenie zwróci następującą informację:

PostgreSQL Unia

Kolumna id pojawia się zarówno w tabelach Książka, jak i Cena. Jednak w wyniku pojawia się tylko raz. Powód jest taki, że PostgreSQL Operator UNION nie zwraca duplikatów.

PostgreSQL Unia wszystkich

Ten operator łączy zestawy wyników z więcej niż jednego polecenia SELECT bez usuwania duplikatów. Operator wymaga, aby każde polecenie SELECT miało podobną liczbę pól w zestawach wyników podobnych typów danych.

Składnia:

SELECT expression_1, expression_2, ... expression_n
FROM tables
[WHERE condition(s)]
UNION ALL
SELECT expression_1, expression_2, ... expression_n
FROM tables
[WHERE condition(s)];

Oto wyjaśnienie powyższych parametrów:

Wyrażenie_1, wyrażenie_2,… wyrażenie_n to obliczenia lub kolumny, które należy pobrać.

Tabele to tabele, z których należy pobrać rekordy.

Warunki WHERE to warunki, które muszą zostać spełnione, aby można było pobrać rekordy.

Uwaga: oba wyrażenia muszą mieć taką samą liczbę wyrażeń.

Będziemy korzystać z następujących tabel:

Książka:

PostgreSQL Unia wszystkich

Cena:

PostgreSQL Unia wszystkich

Uruchom następujące polecenie:

 
SELECT id
FROM Book
UNION ALL
SELECT id
FROM price;

Powinno zostać zwrócone:

PostgreSQL Unia wszystkich

Duplikaty nie zostały usunięte.

ZAMÓW PRZEZ

PostgreSQL Operator UNION może być używany razem z klauzulą ​​ORDER BY, aby uporządkować wyniki zapytania. Aby to zademonstrować, użyjemy następujących tabel:

Cena:

ZAMÓW PRZEZ

Cena2:

ZAMÓW PRZEZ

Oto polecenie, które pokazuje, jak używać operatora UNION razem z klauzulą ​​ORDER BY:

SELECT *
FROM Price
UNION
SELECT *
FROM Price2
ORDER BY price;

Polecenie zwróci następującą informację:

ZAMÓW PRZEZ

Rekordy uporządkowano według kolumny ceny. Klauzula domyślnie porządkuje rekordy w kolejności rosnącej. Aby uporządkować je w kolejności malejącej, dodaj klauzulę DESC, jak pokazano poniżej:

SELECT *
FROM Price
UNION
SELECT *
FROM Price2
ORDER BY price DESC;

Polecenie zwróci następującą informację:

ZAMÓW PRZEZ

Rekordy zostały uporządkowane według kolumny ceny w kolejności malejącej.

Kiedy używać Unii i Kiedy używać Unii wszystkich?

Użyj operatora UNION, gdy masz wiele tabel o podobnej strukturze, ale podzielonych z jakiegoś powodu. Jest to dobre, gdy musisz usunąć/wyeliminować zduplikowane rekordy.

Użyj operatora UNION ALL, jeśli nie musisz usuwać/eliminować zduplikowanych rekordów.

Korzystanie z pgAdmina

Zobaczmy teraz, jak wszystkie trzy akcje zostały wykonane przy użyciu pgAdmin.

Jak korzystać PostgreSQL Unia za pomocą pgAdmin

Poniżej przedstawiono krok po kroku proces korzystania PostgreSQL Unia za pomocą pgAdmin

Aby osiągnąć to samo poprzez pgAdmin, wykonaj następujące czynności:

Krok 1) Zaloguj
Zaloguj się na swoje konto pgAdmin.

Krok 2) Kliknij Bazy danych

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

Zastosowanie PostgreSQL Unia za pomocą pgAdmin

Krok 3) Wpisz zapytanie
Wpisz zapytanie w edytorze zapytań:

SELECT *
FROM Price
UNION
SELECT *
FROM Price2
ORDER BY price DESC;

Krok 4) Kliknij przycisk Wykonaj.
Następnie kliknij przycisk Wykonaj. Jak pokazano na poniższym obrazku.

Zastosowanie PostgreSQL Unia za pomocą pgAdmin

Powinno zostać zwrócone:

Zastosowanie PostgreSQL Unia za pomocą pgAdmin

Unia wszystkich

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.

Zastosowanie PostgreSQL Unia Wszystko za pomocą pgAdmin

Krok 3) Wpisz zapytanie w edytorze zapytań:

SELECT id
FROM Book
UNION ALL
SELECT id
FROM price;

Krok 4) Kliknij przycisk Wykonaj.

Zastosowanie PostgreSQL Unia Wszystko za pomocą pgAdmin

Powinno zostać zwrócone:

Zastosowanie PostgreSQL Unia Wszystko za pomocą pgAdmin

ZAMÓW PRZEZ

Operator UNION ALL można połączyć z klauzulą ​​ORDER BY, aby uporządkować wyniki w zestawie wyników. Na przykład:

SELECT id
FROM Book
UNION ALL
SELECT id
FROM price
ORDER BY id;

Polecenie zwróci następującą informację:

Zastosowanie PostgreSQL ZAMÓW PRZEZ PGAdmin

Wyniki zostały zamówione.

Podsumowanie

  • PostgreSQL Operator UNION łączy wyniki z więcej niż jednego źródła SELECT oświadczenie w jeden zestaw wyników.
  • Operator UNION nie zwraca zduplikowanych rekordów.
  • Aby uporządkować wyniki należy połączyć je z klauzulą ​​ORDER BY.
  • Operator UNION ALL łączy wyniki z więcej niż jednego polecenia SELECT w jeden zestaw wyników.
  • Operator UNION ALL nie usuwa duplikatów.

Pobierz bazę danych używaną w tym samouczku

Podsumuj ten post następująco: