PostgreSQL Union, Union ALLA med exempel

Vad är PostgreSQL Union?

Smakämnen PostgreSQL UNION-operatorn används för att kombinera resultatuppsättningar från mer än en SELECT-sats till en resultatuppsättning. Alla duplicerade rader från resultaten av SELECT-satserna elimineras. UNION-operatören arbetar under två villkor:

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

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

syntax

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

Här är en förklaring till 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 hämta poster från.

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

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

PostgreSQL Unionen

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

Vi har en databas som heter Demo med följande tabeller:

Bok:

PostgreSQL Unionen

Pris:

PostgreSQL Unionen

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

SELECT id
FROM Book
UNION
SELECT id
FROM Price;

Kommandot returnerar följande:

PostgreSQL Unionen

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

PostgreSQL Union Alla

Den här operatorn kombinerar resultatuppsättningar från mer än en SELECT-sats 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_n
FROM tables
[WHERE condition(s)]
UNION ALL
SELECT expression_1, expression_2, ... expression_n
FROM tables
[WHERE condition(s)];

Här är en förklaring till 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 hämta poster från.

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

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

Vi kommer att använda följande tabeller:

Bok:

PostgreSQL Union Alla

Pris:

PostgreSQL Union Alla

Kör följande kommando:

 
SELECT id
FROM Book
UNION ALL
SELECT id
FROM price;

Det bör returnera följande:

PostgreSQL Union Alla

Dubletterna har inte tagits bort.

SORTERA EFTER

Smakämnen PostgreSQL UNION-operatorn kan användas tillsammans med ORDER BY-satsen för att ordna frågeresultaten. För att visa detta kommer vi att använda följande tabeller:

Pris:

SORTERA EFTER

Pris2:

SORTERA EFTER

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

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

Kommandot returnerar följande:

SORTERA EFTER

Skivorna sorterades efter priskolumnen. Klausulen ordnar posterna i stigande ordning som standard. För att ordna dem i fallande ordning, lägg till DESC-satsen som visas nedan:

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

Kommandot returnerar följande:

SORTERA EFTER

Posterna har ordnats 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-operatorn när du har flera tabeller med liknande struktur men delade av en anledning. Det är bra när du behöver ta bort/eliminera dubbletter av poster.

Använd UNION ALL-operatorn när du inte behöver ta bort/eliminera dubbletter av poster.

Använder pgAdmin

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

Så här använder du PostgreSQL Union med hjälp av pgAdmin

Följande är steg för steg process om hur man använder PostgreSQL Union med hjälp av pgAdmin

För att åstadkomma samma sak genom pgAdmin, gör så här:

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

Steg 2) Klicka på Databaser

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

Använda PostgreSQL Union med hjälp av pgAdmin

Steg 3) Skriv frågan
Skriv in frågan i frågeredigeraren:

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

Steg 4) Klicka på knappen Kör.
Klicka sedan på knappen Kör. Som visas i bilden nedan.

Använda PostgreSQL Union med hjälp av pgAdmin

Det bör returnera följande:

Använda PostgreSQL Union med hjälp av pgAdmin

Union Alla

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

Steg 2)

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

Använda PostgreSQL Union Alla Använder pgAdmin

Steg 3) Skriv in frågan i frågeredigeraren:

SELECT id
FROM Book
UNION ALL
SELECT id
FROM price;

Steg 4) Klicka på knappen Kör.

Använda PostgreSQL Union Alla Använder pgAdmin

Det bör returnera följande:

Använda PostgreSQL Union Alla Använder pgAdmin

SORTERA EFTER

UNION ALL-operatorn kan kombineras med ORDER BY-satsen för att ordna resultat i resultatuppsättningen. Till exempel:

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

Kommandot returnerar följande:

Använda PostgreSQL BESTÄLL GENOM att använda pgAdmin

Resultaten är beställda.

Sammanfattning

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

Ladda ner den databas som används i denna handledning