PostgreSQL Union, Union ALL mit Beispielen
Was ist PostgreSQL Union?
Die PostgreSQL Der UNION-Operator wird verwendet, um Ergebnismengen aus mehreren SELECT-Anweisungen in einer Ergebnismenge zu kombinieren. Alle doppelten Zeilen aus den Ergebnissen der SELECT-Anweisungen werden eliminiert. Der UNION-Operator funktioniert 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.
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)];
Hier ist eine Erklärung für die oben genannten Parameter:
expression_1, expression_2, … expression_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.
PostgreSQL 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 id FROM Book UNION SELECT id FROM Price;
Der Befehl gibt Folgendes zurück:
Die ID-Spalte erscheint sowohl in der Buch- als auch in der Preistabelle. Es erscheint jedoch nur einmal im Ergebnis. Der Grund ist, dass PostgreSQL Der UNION-Operator gibt keine Duplikate zurück.
PostgreSQL Union all
Dieser Operator kombiniert Ergebnismengen aus mehreren SELECT-Anweisungen, ohne Duplikate zu entfernen. Der Operator erfordert, dass jede SELECT-Anweisung eine ähnliche Anzahl von Feldern in Ergebnismengen mit ähnlichen Datentypen enthält.
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 ist eine Erklärung für die oben genannten Parameter:
expression_1, expression_2, … expression_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 die gleiche Anzahl von Ausdrücken haben.
Wir werden die folgenden Tabellen verwenden:
Buch:
Preis:
Führen Sie den folgenden Befehl aus:
SELECT id FROM Book UNION ALL SELECT id FROM price;
Es sollte Folgendes zurückgeben:
Die Duplikate wurden nicht entfernt.
SORTIEREN NACH
Die PostgreSQL Der UNION-Operator kann zusammen mit der ORDER BY-Klausel verwendet werden, um die Abfrageergebnisse zu sortieren. Um dies zu demonstrieren, verwenden wir die folgenden Tabellen:
Preis:
Preis2:
Hier ist der Befehl, der zeigt, wie der UNION-Operator zusammen mit der ORDER BY-Klausel verwendet wird:
SELECT * FROM Price UNION SELECT * FROM Price2 ORDER BY price;
Der Befehl gibt Folgendes zurück:
Die Datensätze wurden nach der Preisspalte sortiert. Die Klausel ordnet die Datensätze standardmäßig in aufsteigender Reihenfolge. Um sie in absteigender Reihenfolge anzuordnen, fügen Sie die DESC-Klausel wie unten gezeigt hinzu:
SELECT * FROM Price UNION SELECT * FROM Price2 ORDER BY price DESC;
Der Befehl gibt Folgendes zurück:
Die Datensätze wurden basierend auf der Preisspalte in absteigender Reihenfolge sortiert.
Wann sollte Union und wann Union all verwendet werden?
Verwenden Sie den UNION-Operator, wenn Sie mehrere Tabellen mit ähnlicher Struktur haben, die jedoch aus einem bestimmten Grund aufgeteilt wurden. Dies ist sinnvoll, wenn Sie doppelte Datensätze entfernen/eliminieren müssen.
Verwenden Sie den Operator UNION ALL, wenn Sie doppelte Datensätze nicht entfernen/eliminieren müssen.
Verwenden von pgAdmin
Sehen wir uns nun an, wie alle drei Aktionen mit pgAdmin ausgeführt wurden.
So wird's genutzt PostgreSQL Union mit pgAdmin
Nachfolgend finden Sie eine Schritt-für-Schritt-Anleitung zur Verwendung PostgreSQL Union mit pgAdmin
Um dasselbe über pgAdmin zu erreichen, gehen Sie wie folgt vor:
Schritt 1) Login
Melden Sie sich bei Ihrem pgAdmin-Konto an.
Schritt 2) Klicken Sie auf Datenbanken
- Klicken Sie in der Navigationsleiste links auf Datenbanken.
- Klicken Sie auf Demo.
Schritt 3) Geben Sie die Abfrage ein
Geben Sie die Abfrage im Abfrageeditor ein:
SELECT * FROM Price UNION SELECT * FROM Price2 ORDER BY price DESC;
Schritt 4) Klicken Sie auf die Schaltfläche „Ausführen“.
Klicken Sie anschließend auf die Schaltfläche „Ausführen“. Wie im Bild unten gezeigt.
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 im Abfrageeditor ein:
SELECT id FROM Book UNION ALL SELECT id FROM price;
Schritt 4) Klicken Sie auf die Schaltfläche „Ausführen“.
Es sollte Folgendes zurückgeben:
SORTIEREN NACH
Der UNION ALL-Operator kann mit der ORDER BY-Klausel kombiniert werden, um die Ergebnisse im Ergebnissatz zu sortieren. Beispiel:
SELECT id FROM Book UNION ALL SELECT id FROM price ORDER BY id;
Der Befehl gibt Folgendes zurück:
Die Ergebnisse sind bestellt.
Zusammenfassung
- Die PostgreSQL Der UNION-Operator kombiniert Ergebnisse aus mehreren SELECT-Anweisung in einen Ergebnissatz.
- Der UNION-Operator gibt keine doppelten Datensätze zurück.
- Um die Ergebnisse zu ordnen, kombinieren Sie sie mit der ORDER BY-Klausel.
- Der Operator UNION ALL kombiniert Ergebnisse aus mehreren SELECT-Anweisungen zu einem Ergebnissatz.
- Der Operator UNION ALL entfernt keine Duplikate.
Laden Sie die in diesem Tutorial verwendete Datenbank herunter