Co to jest PostgreSQL Union?
Operator PostgreSQL UNION służy do łączenia zestawów wyników z więcej niż jednej instrukcji SELECT w jeden zestaw wynikowy. Wszelkie zduplikowane wiersze z wyników instrukcji SELECT są eliminowane. Operator UNION działa na dwóch warunkach:
- Zapytania SELECT MUSZĄ zwrócić podobną liczbę zapytań.
- Typy danych wszystkich odpowiednich kolumn muszą być zgodne.
Operator UNION jest zwykle używany do łączenia danych z powiązanych tabel, które nie zostały doskonale znormalizowane.
Z tego samouczka PostgreSQL dowiesz się:
- Co to jest PostgreSQL Union?
- Składnia
- Unia
- Union All
- ZAMÓW PRZEZ
- Kiedy używać Union all i kiedy używać Union all?
- Korzystanie z pgAdmin
Składnia
SELECT expression_1, expression_2,… expression_nFROM tables[WHERE condition(s)]UNIONSELECT expression_1, expression_2,… expression_nFROM 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 musisz pobrać rekordy.
Warunek (-y) GDZIE to warunki, które muszą być 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.
Unia
Operator UNION usuwa duplikaty. Pokażmy to.
Mamy bazę danych o nazwie Demo z następującymi tabelami:
Książka:
Cena £:
Uruchommy następujące polecenie:
SELECT idFROM BookUNIONSELECT idFROM Price;
Polecenie zwróci następujące informacje:
Kolumna id pojawia się zarówno w tabeli Book, jak i Price. Jednak w wyniku pojawia się tylko raz. Powodem jest to, że operator PostgreSQL UNION nie zwraca duplikatów.
Union All
Ten operator łączy zestawy wyników z więcej niż jednej instrukcji SELECT bez usuwania duplikatów. Operator wymaga, aby każda instrukcja SELECT miała podobną liczbę pól w zestawach wyników o podobnych typach danych.
Składnia:
SELECT expression_1, expression_2,… expression_nFROM tables[WHERE condition(s)]UNION ALLSELECT expression_1, expression_2,… expression_nFROM 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 musisz pobrać rekordy.
Warunek (-y) GDZIE to warunki, które muszą być spełnione, aby można było pobrać rekordy.
Uwaga: oba wyrażenia muszą mieć taką samą liczbę wyrażeń.
Posłużymy się następującymi tabelami:
Książka:
Cena £:
Uruchom następujące polecenie:
SELECT idFROM BookUNION ALLSELECT idFROM price;
Powinien zwrócić następujące informacje:
Duplikaty nie zostały usunięte.
ZAMÓW PRZEZ
Operator PostgreSQL UNION może być używany razem z klauzulą ORDER BY w celu uporządkowania wyników zapytania. Aby to zademonstrować, użyjemy następujących tabel:
Cena £:
Cena2:
Oto polecenie, które demonstruje, jak używać operatora UNION razem z klauzulą ORDER BY:
SELECT *FROM PriceUNIONSELECT *FROM Price2ORDER BY price;
Polecenie zwróci następujące informacje:
Rekordy zostały uporządkowane według kolumny cen. Klauzula domyślnie porządkuje rekordy w porządku rosnącym. Aby uporządkować je w porządku malejącym, dodaj klauzulę DESC, jak pokazano poniżej:
SELECT *FROM PriceUNIONSELECT *FROM Price2ORDER BY price DESC;
Polecenie zwróci następujące informacje:
Rekordy zostały uporządkowane według ceny w kolumnie malejącej.
Kiedy używać Union all i kiedy używać Union all?
Użyj operatora UNION, jeśli masz wiele tabel o podobnej strukturze, ale z jakiegoś powodu podzielonych. Dobrze, gdy trzeba usunąć / wyeliminować zduplikowane rekordy.
Użyj operatora UNION ALL, gdy nie musisz usuwać / eliminować zduplikowanych rekordów.
Korzystanie z pgAdmin
Zobaczmy teraz, jak wszystkie trzy akcje zostały wykonane przy użyciu pgAdmin.
Unia
Aby osiągnąć to samo za pomocą pgAdmin, wykonaj następujące czynności:
Krok 1) Zaloguj się do swojego konta pgAdmin.
Krok 2)
- Z paska nawigacji po lewej stronie kliknij Bazy danych.
- Kliknij opcję Demo.
Krok 3) Wpisz zapytanie w edytorze zapytań:
SELECT *FROM PriceUNIONSELECT *FROM Price2ORDER BY price DESC;
Krok 4) Kliknij przycisk Wykonaj.
Powinien zwrócić następujące informacje:
Union All
Krok 1) Zaloguj się do swojego konta pgAdmin.
Krok 2)
- Na pasku nawigacyjnym po lewej stronie kliknij Bazy danych.
- Kliknij opcję Demo.
Krok 3) Wpisz zapytanie w edytorze zapytań:
SELECT idFROM BookUNION ALLSELECT idFROM price;
Krok 4) Kliknij przycisk Wykonaj.
Powinien zwrócić następujące informacje:
ZAMÓW PRZEZ
Operator UNION ALL można łączyć z klauzulą ORDER BY, aby uporządkować wyniki w zestawie wyników. Na przykład:
SELECT idFROM BookUNION ALLSELECT idFROM priceORDER BY id;
Polecenie zwróci następujące informacje:
Wyniki zostały uporządkowane.
Podsumowanie:
- Operator PostgreSQL UNION łączy wyniki z więcej niż jednej instrukcji SELECT w jeden zestaw wyników.
- Operator UNION nie zwraca zduplikowanych rekordów.
- Aby uporządkować wyniki, połącz je z klauzulą ORDER BY.
- Operator UNION ALL łączy wyniki z więcej niż jednej instrukcji SELECT w jeden zestaw wyników.
- Operator UNION ALL nie usuwa duplikatów.
Pobierz bazę danych używaną w tym samouczku