PostgreSQL Union, Union ALL med exempel

Innehållsförteckning:

Anonim

Vad är PostgreSQL Union?

PostgreSQL UNION-operatören används för att kombinera resultatuppsättningar från mer än en SELECT-sats till en resultatuppsättning. Eventuella dubbletterader från resultaten av SELECT-uttalandena elimineras. UNION-operatören arbetar under två förhållanden:

  • SELECT-frågorna MÅSTE returnera ett liknande antal frågor.
  • Datatyperna för alla motsvarande kolumner måste vara kompatibla.

UNION-operatören används normalt för att kombinera data från relaterade tabeller som inte har normaliserats perfekt.

I denna PostgreSQL-handledning lär du dig:

  • Vad är PostgreSQL Union?
  • Syntax
  • Union
  • Union All
  • SORTERA EFTER
  • När ska man använda Union och när ska man använda Union all?
  • Använda pgAdmin

Syntax

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

Här är en förklaring för ovanstående parametrar:

Expression_1, expression_2,… expression_n är de beräkningar eller kolumner som du behöver hämta.

Tabellerna är de tabeller som du behöver för att hämta poster.

WHERE-villkoren är de villkor som måste uppfyllas för att poster ska hämtas.

Obs: att eftersom UNION-operatören inte returnerar dubbletter, kommer användningen av UNION DISTINCT inte att påverka resultatet.

Union

UNION-operatören tar bort dubbletter. Låt oss demonstrera detta.

Vi har en databas med namnet Demo med följande tabeller:

Bok:

Pris:

Låt oss köra följande kommando:

SELECT idFROM BookUNIONSELECT idFROM Price;

Kommandot returnerar följande:

Id-kolumnen visas i både bok- och pristabellerna. Det visas dock bara en gång i resultatet. Anledningen är att PostgreSQL UNION-operatören inte returnerar dubbletter.

Union All

Den här operatören kombinerar resultatuppsättningar från mer än ett SELECT-uttalande utan att ta bort dubbletter. Operatören kräver att varje SELECT-sats har ett liknande antal fält i resultatuppsättningar av liknande datatyper.

Syntax:

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

Här är en förklaring för ovanstående parametrar:

Expression_1, expression_2,… expression_n är de beräkningar eller kolumner som du behöver hämta.

Tabellerna är de tabeller som du behöver för att hämta poster.

WHERE-villkoren är de villkor som måste uppfyllas för att poster ska hämtas.

Obs! Båda uttrycken måste ha lika många uttryck.

Vi använder följande tabeller:

Bok:

Pris:

Kör följande kommando:

SELECT idFROM BookUNION ALLSELECT idFROM price;

Den ska returnera följande:

Dubblaten har inte tagits bort.

SORTERA EFTER

PostgreSQL UNION-operatören kan användas tillsammans med ORDER BY-klausulen för att beställa frågeresultaten. För att demonstrera detta kommer vi att använda följande tabeller:

Pris:

Pris2:

Här är kommandot som visar hur man använder UNION-operatören tillsammans med ORDER BY-satsen:

SELECT *FROM PriceUNIONSELECT *FROM Price2ORDER BY price;

Kommandot returnerar följande:

Posterna beställdes av priskolumnen. Klausulen ordnar posterna i stigande ordning som standard. För att ordna dem i fallande ordning, lägg till DESC-klausulen som visas nedan:

SELECT *FROM PriceUNIONSELECT *FROM Price2ORDER BY price DESC;

Kommandot returnerar följande:

Posterna har beställts baserat på priskolumnen i fallande ordning.

När ska man använda Union och när ska man använda Union all?

Använd UNION-operatören när du har flera tabeller med en liknande struktur men delas av en anledning. Det är bra när du behöver ta bort / eliminera dubbletter.

Använd UNION ALL-operatören när du inte behöver ta bort / eliminera dubbletter.

Använda pgAdmin

Låt oss nu se hur alla tre åtgärderna utförs med pgAdmin.

Union

För att åstadkomma samma genom pgAdmin, gör detta:

Steg 1) Logga in på ditt pgAdmin-konto.

Steg 2)

  1. Från navigeringsfältet till vänster - Klicka på databaser.
  2. Klicka på Demo.

Steg 3) Skriv frågan i frågeditoren:

SELECT *FROM PriceUNIONSELECT *FROM Price2ORDER BY price DESC;

Steg 4) Klicka på knappen Kör.

Den ska returnera följande:

Union All

Steg 1) Logga in på ditt pgAdmin-konto.

Steg 2)

  1. Klicka på Databaser i navigeringsfältet till vänster.
  2. Klicka på Demo.

Steg 3) Skriv frågan i frågeditoren:

SELECT idFROM BookUNION ALLSELECT idFROM price;

Steg 4) Klicka på knappen Kör.

Den ska returnera följande:

SORTERA EFTER

UNION ALL-operatören kan kombineras med ORDER BY-klausulen för att beställa resultat i resultatuppsättningen. Till exempel:

SELECT idFROM BookUNION ALLSELECT idFROM priceORDER BY id;

Kommandot returnerar följande:

Resultaten har beställts.

Sammanfattning:

  • PostgreSQL UNION-operatören kombinerar resultat från mer än en SELECT-sats i en resultatuppsättning.
  • UNION-operatören returnerar inte dubbla poster.
  • För att beställa resultaten, kombinera det med ORDER BY-klausulen.
  • UNION ALL-operatören kombinerar resultat från mer än en SELECT-sats i en resultatuppsättning.
  • UNION ALL-operatören tar inte bort dubbletter.

Ladda ner databasen som används i denna handledning