PostgreSQL Union, Union ALLE med eksempler

Hvad er PostgreSQL Union?

PostgreSQL UNION operator bruges til at kombinere resultatsæt fra mere end én SELECT-sætning til ét resultatsæt. Alle duplikerede rækker fra resultaterne af SELECT-sætningerne elimineres. UNIONEN operator arbejder under to forhold:

  • SELECT-forespørgslerne SKAL returnere et tilsvarende antal forespørgsler.
  • Datatyperne for alle tilsvarende kolonner skal være kompatible.

UNIONEN operator bruges normalt til at kombinere data fra relaterede tabeller, der ikke er blevet normaliseret perfekt.

Syntaks

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)];

Her er en forklaring på ovenstående parametre:

Udtrykket_1, udtryk_2, … udtryk_n er de beregninger eller kolonner, du skal hente.

Tabellerne er de tabeller, hvorfra du skal hente poster.

WHERE-betingelserne er de betingelser, der skal være opfyldt, for at registreringer kan hentes.

Bemærk: at siden UNION operaHvis du ikke returnerer dubletter, vil brugen af ​​UNION DISTINCT ikke have nogen indflydelse på resultaterne.

PostgreSQL Union

UNIONEN operator fjerner dubletter. Lad os demonstrere dette.

Vi har en database ved navn Demo med following tabeller:

Bestil:

PostgreSQL Union

Pris:

PostgreSQL Union

Lad os køre folloenwing kommando:

SELECT id
FROM Book
UNION
SELECT id
FROM Price;

Kommandoen returnerer folloenwing:

PostgreSQL Union

Id-kolonnen vises i både bog- og pristabellerne. Det vises dog kun én gang i resultatet. Årsagen er det PostgreSQL UNION operator returnerer ikke dubletter.

PostgreSQL Union Alle

Denne operator kombinerer resultatsæt fra mere end én SELECT-sætning uden at fjerne dubletter. Det operator kræver, at hver SELECT-sætning har et tilsvarende antal felter i resultatsæt med lignende datatyper.

Syntaks:

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)];

Her er en forklaring på ovenstående parametre:

Udtrykket_1, udtryk_2, … udtryk_n er de beregninger eller kolonner, du skal hente.

Tabellerne er de tabeller, hvorfra du skal hente poster.

WHERE-betingelserne er de betingelser, der skal være opfyldt, for at registreringer kan hentes.

Bemærk: Begge udtryk skal have lige mange udtryk.

Vi vil bruge folloenwing tabeller:

Bestil:

PostgreSQL Union Alle

Pris:

PostgreSQL Union Alle

Kør folloenwing kommando:

 
SELECT id
FROM Book
UNION ALL
SELECT id
FROM price;

Det burde returnere folloenwing:

PostgreSQL Union Alle

Dubletterne er ikke blevet fjernet.

BESTIL BY

PostgreSQL UNION operator kan bruges sammen med ORDER BY-klausulen til at bestille forespørgselsresultaterne. For at demonstrere dette, vil vi bruge following tabeller:

Pris:

BESTIL BY

Pris 2:

BESTIL BY

Her er kommandoen, der viser, hvordan du bruger UNION operator sammen med ORDER BY-klausulen:

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

Kommandoen returnerer folloenwing:

BESTIL BY

Posterne blev sorteret efter priskolonnen. Klausulen sorterer som standard posterne i stigende rækkefølge. For at bestille dem i faldende rækkefølge skal du tilføje DESC-klausulen som vist nedenfor:

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

Kommandoen returnerer folloenwing:

BESTIL BY

Posterne er sorteret ud fra priskolonnen i faldende rækkefølge.

Hvornår skal man bruge Union og Hvornår skal man bruge Union alle?

Brug UNION operator, når du har flere tabeller med en lignende struktur, men opdelt af en grund. Det er godt, når du skal fjerne/eliminere duplikerede poster.

Brug UNION ALL operator, når du ikke behøver at fjerne/eliminere duplikerede poster.

Bruger pgAdmin

Lad os nu se, hvordan alle tre handlinger udførte ved hjælp af pgAdmin.

Sådan bruges den: PostgreSQL Union ved hjælp af pgAdmin

Following er trin for trin proces om hvordan man bruger PostgreSQL Union ved hjælp af pgAdmin

For at opnå det samme gennem pgAdmin, gør dette:

Trin 1) Login
Log ind på din pgAdmin-konto.

Trin 2) Klik på Databaser

  1. Fra navigationslinjen til venstre - Klik på Databaser.
  2. Klik på Demo.

Brug PostgreSQL Union ved hjælp af pgAdmin

Trin 3) Indtast forespørgslen
Indtast forespørgslen i forespørgselseditoren:

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

Trin 4) Klik på knappen Udfør.
Klik derefter på knappen Udfør. Som vist på billedet nedenfor.

Brug PostgreSQL Union ved hjælp af pgAdmin

Det burde returnere folloenwing:

Brug PostgreSQL Union ved hjælp af pgAdmin

Union Alle

Trin 1) Log ind på din pgAdmin-konto.

Trin 2)

  1. Klik på Databaser i navigationslinjen til venstre.
  2. Klik på Demo.

Brug PostgreSQL Union Alle Bruger pgAdmin

Trin 3) Indtast forespørgslen i forespørgselseditoren:

SELECT id
FROM Book
UNION ALL
SELECT id
FROM price;

Trin 4) Klik på knappen Udfør.

Brug PostgreSQL Union Alle Bruger pgAdmin

Det burde returnere folloenwing:

Brug PostgreSQL Union Alle Bruger pgAdmin

BESTIL BY

UNIONEN ALLE operator kan kombineres med ORDER BY-klausulen for at bestille resultater i resultatsættet. For eksempel:

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

Kommandoen returnerer folloenwing:

Brug PostgreSQL BESTIL VED at bruge pgAdmin

Resultaterne er bestilt.

Resumé

  • PostgreSQL UNION operator kombinerer resultater fra mere end én SELECT erklæring i ét resultatsæt.
  • UNIONEN operator returnerer ikke duplikerede poster.
  • For at bestille resultaterne skal du kombinere det med ORDER BY-klausulen.
  • UNIONEN ALLE operator kombinerer resultater fra mere end én SELECT-sætning til et resultatsæt.
  • UNIONEN ALLE operator fjerner ikke dubletter.

Download databasen brugt i denne vejledning