Únia PostgreSQL, Únia VŠETKO s príkladmi

Obsah:

Anonim

Čo je to PostgreSQL Union?

Operátor PostgreSQL UNION sa používa na kombinovanie množín výsledkov z viac ako jedného príkazu SELECT do jednej sady výsledkov. Všetky duplicitné riadky z výsledkov príkazov SELECT sú odstránené. Prevádzkovateľ UNION pracuje za dvoch podmienok:

  • SELECT dotazy MUSIA vrátiť podobný počet dotazov.
  • Dátové typy všetkých zodpovedajúcich stĺpcov musia byť kompatibilné.

Operátor UNION sa zvyčajne používa na kombináciu údajov zo súvisiacich tabuliek, ktoré neboli normalizované dokonale.

V tomto výučbe PostgreSQL sa dozviete:

  • Čo je to PostgreSQL Union?
  • Syntax
  • Únie
  • Union All
  • ZORADIŤ PODĽA
  • Kedy použiť Union a kedy použiť Union all?
  • Pomocou pgAdmin

Syntax

SELECT expression_1, expression_2,… expression_nFROM tables[WHERE condition(s)]UNIONSELECT expression_1, expression_2,… expression_nFROM tables[WHERE condition(s)];

Tu je vysvetlenie vyššie uvedených parametrov:

Výraz_1, výraz_2, ... výraz_n sú výpočty alebo stĺpce, ktoré musíte načítať.

Tabuľky sú tabuľky, z ktorých potrebujete načítať záznamy.

Podmienky WHERE sú podmienky, ktoré musia byť splnené, aby sa záznamy mohli načítať.

Poznámka: pretože operátor UNION nevracia duplikáty, použitie UNION DISTINCT nebude mať žiadny vplyv na výsledky.

Únie

Operátor UNION odstráni duplikáty. Ukážme to.

Máme databázu s názvom Demo s nasledujúcimi tabuľkami:

Kniha:

Cena:

Spustíme nasledujúci príkaz:

SELECT idFROM BookUNIONSELECT idFROM Price;

Príkaz vráti nasledujúce:

Stĺpec id sa zobrazuje v tabuľkách Kniha aj Cena. Vo výsledku sa však objaví iba raz. Dôvod je ten, že operátor PostgreSQL UNION nevracia duplikáty.

Union All

Tento operátor kombinuje množiny výsledkov z viac ako jedného príkazu SELECT bez odstránenia duplikátov. Prevádzkovateľ vyžaduje, aby každý príkaz SELECT mal podobný počet polí vo výsledkových sadách podobných dátových typov.

Syntax:

SELECT expression_1, expression_2,… expression_nFROM tables[WHERE condition(s)]UNION ALLSELECT expression_1, expression_2,… expression_nFROM tables[WHERE condition(s)];

Tu je vysvetlenie vyššie uvedených parametrov:

Výraz_1, výraz_2, ... výraz_n sú výpočty alebo stĺpce, ktoré musíte načítať.

Tabuľky sú tabuľky, z ktorých potrebujete načítať záznamy.

Podmienky WHERE sú podmienky, ktoré musia byť splnené, aby sa záznamy mohli načítať.

Poznámka: Oba výrazy musia mať rovnaký počet výrazov.

Použijeme nasledujúce tabuľky:

Kniha:

Cena:

Spustite nasledujúci príkaz:

SELECT idFROM BookUNION ALLSELECT idFROM price;

Mal by vrátiť nasledujúce:

Duplikáty neboli odstránené.

ZORADIŤ PODĽA

Na zoradenie výsledkov dotazu je možné použiť operátor PostgreSQL UNION spolu s klauzulou ORDER BY. Aby sme to demonštrovali, použijeme nasledujúce tabuľky:

Cena:

Cena 2:

Tu je príkaz, ktorý ukazuje, ako používať operátor UNION spolu s klauzulou ORDER BY:

SELECT *FROM PriceUNIONSELECT *FROM Price2ORDER BY price;

Príkaz vráti nasledujúce:

Záznamy boli zoradené podľa stĺpca ceny. Táto klauzula štandardne zoradí záznamy vzostupne. Ak ich chcete zoradiť zostupne, pridajte klauzulu DESC, ako je uvedené nižšie:

SELECT *FROM PriceUNIONSELECT *FROM Price2ORDER BY price DESC;

Príkaz vráti nasledujúce:

Záznamy boli zoradené na základe stĺpca ceny v zostupnom poradí.

Kedy použiť Union a kedy použiť Union all?

Operátor UNION použite, ak máte viac tabuliek s podobnou štruktúrou, ktoré sú však z nejakého dôvodu rozdelené. Je dobré, keď potrebujete odstrániť alebo vylúčiť duplicitné záznamy.

Ak nepotrebujete odstrániť alebo vylúčiť duplicitné záznamy, použite operátor UNION ALL.

Pomocou pgAdmin

Teraz sa pozrime, ako sa všetky tri akcie vykonali pomocou pgAdmin.

Únie

To isté dosiahnete prostredníctvom pgAdmin:

Krok 1) Prihláste sa do svojho účtu pgAdmin.

Krok 2)

  1. Na navigačnom paneli vľavo kliknite na položku Databázy.
  2. Kliknite na ukážku.

Krok 3) Zadajte dopyt do editora dotazov:

SELECT *FROM PriceUNIONSELECT *FROM Price2ORDER BY price DESC;

Krok 4) Kliknite na tlačidlo Vykonať.

Mal by vrátiť nasledujúce:

Union All

Krok 1) Prihláste sa do svojho účtu pgAdmin.

Krok 2)

  1. Na navigačnom paneli vľavo kliknite na Databázy.
  2. Kliknite na ukážku.

Krok 3) Zadajte dopyt do editora dotazov:

SELECT idFROM BookUNION ALLSELECT idFROM price;

Krok 4) Kliknite na tlačidlo Vykonať.

Mal by vrátiť nasledujúce:

ZORADIŤ PODĽA

Operátor UNION ALL je možné kombinovať s klauzulou ORDER BY na zoradenie výsledkov v sade výsledkov. Napríklad:

SELECT idFROM BookUNION ALLSELECT idFROM priceORDER BY id;

Príkaz vráti nasledujúce:

Výsledky boli objednané.

Zhrnutie:

  • Operátor PostgreSQL UNION kombinuje výsledky z viac ako jedného príkazu SELECT do jednej množiny výsledkov.
  • Operátor UNION nevracia duplicitné záznamy.
  • Ak chcete zoradiť výsledky, skombinujte ich s klauzulou ORDER BY.
  • Operátor UNION ALL kombinuje výsledky z viac ako jedného príkazu SELECT do jednej množiny výsledkov.
  • Operátor UNION ALL neodstráni duplikáty.

Stiahnite si databázu použitú v tomto výučbe