Was ist PostgreSQL Union?
Der PostgreSQL UNION-Operator wird zum Kombinieren von Ergebnismengen aus mehr als einer SELECT-Anweisung zu einer Ergebnismenge verwendet. Alle doppelten Zeilen aus den Ergebnissen der SELECT-Anweisungen werden entfernt. Der UNION-Operator arbeitet unter zwei Bedingungen:
- Die SELECT-Abfragen MÜSSEN eine ähnliche Anzahl von Abfragen zurückgeben.
- Die Datentypen aller entsprechenden Spalten müssen kompatibel sein.
Der UNION-Operator wird normalerweise verwendet, um Daten aus verwandten Tabellen zu kombinieren, die nicht perfekt normalisiert wurden.
In diesem PostgreSQL-Tutorial lernen Sie:
- Was ist PostgreSQL Union?
- Syntax
- Union
- Union All
- SORTIEREN NACH
- Wann wird Union verwendet und wann wird Union all verwendet?
- Verwenden von pgAdmin
Syntax
SELECT expression_1, expression_2,… expression_nFROM tables[WHERE condition(s)]UNIONSELECT expression_1, expression_2,… expression_nFROM tables[WHERE condition(s)];
Hier ist eine Erklärung für die obigen Parameter:
Der Ausdruck_1, Ausdruck_2, ... Ausdruck_n sind die Berechnungen oder Spalten, die Sie abrufen müssen.
Die Tabellen sind die Tabellen, aus denen Sie Datensätze abrufen müssen.
Die WHERE-Bedingung (en) sind die Bedingungen, die erfüllt sein müssen, damit Datensätze abgerufen werden können.
Hinweis: Da der UNION-Operator keine Duplikate zurückgibt, hat die Verwendung von UNION DISTINCT keine Auswirkungen auf die Ergebnisse.
Union
Der UNION-Operator entfernt Duplikate. Lassen Sie uns dies demonstrieren.
Wir haben eine Datenbank namens Demo mit den folgenden Tabellen:
Buch:
Preis:
Lassen Sie uns den folgenden Befehl ausführen:
SELECT idFROM BookUNIONSELECT idFROM Price;
Der Befehl gibt Folgendes zurück:
Die ID-Spalte wird sowohl in der Buch- als auch in der Preistabelle angezeigt. Es erscheint jedoch nur einmal im Ergebnis. Der Grund dafür ist, dass der PostgreSQL UNION-Operator keine Duplikate zurückgibt.
Union All
Dieser Operator kombiniert Ergebnismengen aus mehr als einer SELECT-Anweisung, ohne Duplikate zu entfernen. Der Operator verlangt, dass jede SELECT-Anweisung eine ähnliche Anzahl von Feldern in Ergebnismengen ähnlicher Datentypen enthält.
Syntax:
SELECT expression_1, expression_2,… expression_nFROM tables[WHERE condition(s)]UNION ALLSELECT expression_1, expression_2,… expression_nFROM tables[WHERE condition(s)];
Hier ist eine Erklärung für die obigen Parameter:
Der Ausdruck_1, Ausdruck_2, ... Ausdruck_n sind die Berechnungen oder Spalten, die Sie abrufen müssen.
Die Tabellen sind die Tabellen, aus denen Sie Datensätze abrufen müssen.
Die WHERE-Bedingung (en) sind die Bedingungen, die erfüllt sein müssen, damit Datensätze abgerufen werden können.
Hinweis: Beide Ausdrücke müssen gleich viele Ausdrücke haben.
Wir werden die folgenden Tabellen verwenden:
Buch:
Preis:
Führen Sie den folgenden Befehl aus:
SELECT idFROM BookUNION ALLSELECT idFROM price;
Es sollte Folgendes zurückgeben:
Die Duplikate wurden nicht entfernt.
SORTIEREN NACH
Der PostgreSQL UNION-Operator kann zusammen mit der ORDER BY-Klausel verwendet werden, um die Abfrageergebnisse zu ordnen. Um dies zu demonstrieren, werden wir die folgenden Tabellen verwenden:
Preis:
Preis2:
Hier ist der Befehl, der zeigt, wie der UNION-Operator zusammen mit der ORDER BY-Klausel verwendet wird:
SELECT *FROM PriceUNIONSELECT *FROM Price2ORDER BY price;
Der Befehl gibt Folgendes zurück:
Die Datensätze wurden nach Preisspalte sortiert. Die Klausel ordnet die Datensätze standardmäßig in aufsteigender Reihenfolge an. Um sie in absteigender Reihenfolge zu ordnen, fügen Sie die DESC-Klausel wie folgt hinzu:
SELECT *FROM PriceUNIONSELECT *FROM Price2ORDER BY price DESC;
Der Befehl gibt Folgendes zurück:
Die Datensätze wurden anhand der Preisspalte in absteigender Reihenfolge sortiert.
Wann wird Union verwendet und wann wird Union all verwendet?
Verwenden Sie den UNION-Operator, wenn Sie mehrere Tabellen mit einer ähnlichen Struktur haben, die jedoch aus einem bestimmten Grund aufgeteilt wurden. Dies ist gut, wenn Sie doppelte Datensätze entfernen / entfernen müssen.
Verwenden Sie den Operator UNION ALL, wenn Sie keine doppelten Datensätze entfernen / entfernen müssen.
Verwenden von pgAdmin
Nun wollen wir sehen, wie alle drei Aktionen mit pgAdmin ausgeführt wurden.
Union
Gehen Sie folgendermaßen vor, um dasselbe mit pgAdmin zu erreichen:
Schritt 1) Melden Sie sich bei Ihrem pgAdmin-Konto an.
Schritt 2)
- Klicken Sie in der Navigationsleiste links auf Datenbanken.
- Klicken Sie auf Demo.
Schritt 3) Geben Sie die Abfrage in den Abfrageeditor ein:
SELECT *FROM PriceUNIONSELECT *FROM Price2ORDER BY price DESC;
Schritt 4) Klicken Sie auf die Schaltfläche Ausführen.
Es sollte Folgendes zurückgeben:
Union All
Schritt 1) Melden Sie sich bei Ihrem pgAdmin-Konto an.
Schritt 2)
- Klicken Sie in der Navigationsleiste links auf Datenbanken.
- Klicken Sie auf Demo.
Schritt 3) Geben Sie die Abfrage in den Abfrageeditor ein:
SELECT idFROM BookUNION ALLSELECT idFROM price;
Schritt 4) Klicken Sie auf die Schaltfläche Ausführen.
Es sollte Folgendes zurückgeben:
SORTIEREN NACH
Der Operator UNION ALL kann mit der ORDER BY-Klausel kombiniert werden, um die Ergebnisse in der Ergebnismenge zu ordnen. Zum Beispiel:
SELECT idFROM BookUNION ALLSELECT idFROM priceORDER BY id;
Der Befehl gibt Folgendes zurück:
Die Ergebnisse wurden bestellt.
Zusammenfassung:
- Der PostgreSQL UNION-Operator kombiniert Ergebnisse aus mehr als einer SELECT-Anweisung in einer Ergebnismenge.
- Der UNION-Operator gibt keine doppelten Datensätze zurück.
- Um die Ergebnisse zu ordnen, kombinieren Sie sie mit der ORDER BY-Klausel.
- Der UNION ALL-Operator kombiniert Ergebnisse aus mehr als einer SELECT-Anweisung in einer Ergebnismenge.
- Der UNION ALL-Operator entfernt keine Duplikate.
Laden Sie die in diesem Tutorial verwendete Datenbank herunter