PostgreSQL Union, Union ALL z przykładami

Spisie treści:

Anonim

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)

  1. Z paska nawigacji po lewej stronie kliknij Bazy danych.
  2. 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)

  1. Na pasku nawigacyjnym po lewej stronie kliknij Bazy danych.
  2. 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