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:
Pris:
Låt oss köra följande kommando:
SELECT id FROM Book UNION SELECT id FROM 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 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:
Pris:
Kör följande kommando:
SELECT id FROM Book UNION ALL SELECT id FROM price;
Det bör returnera följande:
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:
Pris2:
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:
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:
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
- Klicka på Databaser i navigeringsfältet till vänster.
- Klicka på Demo.
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.
Det bör returnera följande:
Union Alla
Steg 1) Logga in på ditt pgAdmin-konto.
Steg 2)
- Klicka på Databaser i navigeringsfältet till vänster.
- Klicka på Demo.
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.
Det bör returnera följande:
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:
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