PostgreSQL Unie, Unie ALLEN met voorbeelden

Wat is PostgreSQL Unie?

Ocuco's Medewerkers PostgreSQL De UNION-operator wordt gebruikt om resultaatsets van meer dan één SELECT-statement te combineren tot één resultaatset. Dubbele rijen uit de resultaten van de SELECT-statements worden geëlimineerd. De UNION-operator werkt onder twee voorwaarden:

  • De SELECT-query's MOETEN een vergelijkbaar aantal query's retourneren.
  • De gegevenstypen van alle bijbehorende kolommen moeten compatibel zijn.

De UNION-operator wordt normaal gesproken gebruikt om gegevens uit gerelateerde tabellen te combineren die niet perfect zijn genormaliseerd.

Syntaxis

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

Hier volgt een uitleg voor de bovenstaande parameters:

De expression_1, expression_2, … expression_n zijn de berekeningen of kolommen die u moet ophalen.

De tabellen zijn de tabellen waaruit u records moet ophalen.

De WHERE-voorwaarde(n) zijn de voorwaarden waaraan moet worden voldaan voordat records kunnen worden opgehaald.

Let op: omdat de UNION-operator geen duplicaten retourneert, heeft het gebruik van UNION DISTINCT geen invloed op de resultaten.

PostgreSQL Unie

De UNION operator verwijdert duplicaten. Laten we dit demonstreren.

We hebben een database met de naam Demo met de volgende tabellen:

Boek:

PostgreSQL Unie

Prijs:

PostgreSQL Unie

Laten we de volgende opdracht uitvoeren:

SELECT id
FROM Book
UNION
SELECT id
FROM Price;

De opdracht retourneert het volgende:

PostgreSQL Unie

De kolom ID verschijnt in zowel de Boek- als de Prijstabellen. Het komt echter slechts één keer voor in het resultaat. De reden is dat PostgreSQL De UNION-operator retourneert geen duplicaten.

PostgreSQL Unie allemaal

Deze operator combineert resultaatsets van meer dan één SELECT-statement zonder duplicaten te verwijderen. De operator vereist dat elke SELECT-statement een vergelijkbaar aantal velden heeft in resultaatsets van vergelijkbare gegevenstypen.

Syntax:

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

Hier volgt een uitleg voor de bovenstaande parameters:

De expression_1, expression_2, … expression_n zijn de berekeningen of kolommen die u moet ophalen.

De tabellen zijn de tabellen waaruit u records moet ophalen.

De WHERE-voorwaarde(n) zijn de voorwaarden waaraan moet worden voldaan voordat records kunnen worden opgehaald.

Opmerking: Beide expressies moeten een gelijk aantal expressies bevatten.

We gebruiken de volgende tabellen:

Boek:

PostgreSQL Unie allemaal

Prijs:

PostgreSQL Unie allemaal

Voer het volgende commando uit:

 
SELECT id
FROM Book
UNION ALL
SELECT id
FROM price;

Het volgende zou moeten worden geretourneerd:

PostgreSQL Unie allemaal

De duplicaten zijn niet verwijderd.

BESTELLING DOOR

Ocuco's Medewerkers PostgreSQL De UNION-operator kan samen met de ORDER BY-component worden gebruikt om de queryresultaten te ordenen. Om dit te demonstreren, gebruiken we de volgende tabellen:

Prijs:

BESTELLING DOOR

Prijs2:

BESTELLING DOOR

Hier is de opdracht die laat zien hoe u de UNION-operator samen met de ORDER BY-clausule kunt gebruiken:

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

De opdracht retourneert het volgende:

BESTELLING DOOR

De records zijn gerangschikt op basis van de prijskolom. De clausule rangschikt de records standaard in oplopende volgorde. Om ze in aflopende volgorde te ordenen, voegt u de DESC-clausule toe, zoals hieronder weergegeven:

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

De opdracht retourneert het volgende:

BESTELLING DOOR

De records zijn geordend op basis van de prijskolom in aflopende volgorde.

Wanneer Union gebruiken en Wanneer Union all gebruiken?

Gebruik de UNION operator wanneer u meerdere tabellen hebt met een vergelijkbare structuur, maar om een ​​reden gesplitst. Het is handig wanneer u dubbele records wilt verwijderen/elimineren.

Gebruik de operator UNION ALL wanneer u geen dubbele records hoeft te verwijderen/elimineren.

Gebruik pgAdmin

Laten we nu eens kijken hoe alle drie de acties werden uitgevoerd met pgAdmin.

Hoe te gebruiken PostgreSQL Unie met behulp van pgAdmin

Hieronder volgt een stapsgewijs proces over hoe u het kunt gebruiken PostgreSQL Unie met behulp van pgAdmin

Om hetzelfde te bereiken via pgAdmin, doet u het volgende:

Stap 1) Inloggen
Log in op uw pgAdmin-account.

Stap 2) Klik op Databases

  1. Klik in de navigatiebalk aan de linkerkant op Databases.
  2. Klik op Demo.

Gebruiken PostgreSQL Unie met behulp van pgAdmin

Stap 3) Typ de zoekopdracht
Typ de query in de query-editor:

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

Stap 4) Klik op de knop Uitvoeren.
Klik vervolgens op de knop Uitvoeren. Zoals weergegeven in onderstaande afbeelding.

Gebruiken PostgreSQL Unie met behulp van pgAdmin

Het volgende zou moeten worden geretourneerd:

Gebruiken PostgreSQL Unie met behulp van pgAdmin

Unie allemaal

Stap 1) Log in op uw pgAdmin-account.

Stap 2)

  1. Klik in de navigatiebalk aan de linkerkant op Databases.
  2. Klik op Demo.

Gebruiken PostgreSQL Union All met behulp van pgAdmin

Stap 3) Typ de query in de query-editor:

SELECT id
FROM Book
UNION ALL
SELECT id
FROM price;

Stap 4) Klik op de knop Uitvoeren.

Gebruiken PostgreSQL Union All met behulp van pgAdmin

Het volgende zou moeten worden geretourneerd:

Gebruiken PostgreSQL Union All met behulp van pgAdmin

BESTELLING DOOR

De operator UNION ALL kan worden gecombineerd met de clausule ORDER BY om resultaten in de resultaatset te ordenen. Bijvoorbeeld:

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

De opdracht retourneert het volgende:

Gebruiken PostgreSQL BESTEL VIA pgAdmin

De resultaten zijn besteld.

Samenvatting

  • Ocuco's Medewerkers PostgreSQL De UNION-operator combineert resultaten van meer dan één SELECT-instructie in één resultatenset.
  • De UNION-operator retourneert geen dubbele records.
  • Om de resultaten te ordenen, combineert u deze met de ORDER BY-clausule.
  • De UNION ALL-operator combineert de resultaten van meer dan één SELECT-instructie in één resultatenset.
  • De operator UNION ALL verwijdert geen duplicaten.

Download de database die in deze zelfstudie wordt gebruikt