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:
Cena:
Uruchommy następujące polecenie:
SELECT id FROM Book UNION SELECT id FROM Price;
Polecenie zwróci następującą informację:
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:
Cena:
Uruchom następujące polecenie:
SELECT id FROM Book UNION ALL SELECT id FROM price;
Powinno zostać zwrócone:
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:
Cena2:
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ę:
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ę:
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
- Na pasku nawigacyjnym po lewej stronie kliknij opcję Bazy danych.
- Kliknij opcję Demo.
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.
Powinno zostać zwrócone:
Unia wszystkich
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 id FROM Book UNION ALL SELECT id FROM price;
Krok 4) Kliknij przycisk Wykonaj.
Powinno zostać zwrócone:
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ę:
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.

















