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:

PostgreSQL Union

Preis:

PostgreSQL Union

Lassen Sie uns den folgenden Befehl ausführen:

SELECT id
FROM Book
UNION
SELECT id
FROM Price;

Der Befehl gibt Folgendes zurück:

PostgreSQL Union

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:

PostgreSQL Union all

Preis:

PostgreSQL Union all

Führen Sie den folgenden Befehl aus:

 
SELECT id
FROM Book
UNION ALL
SELECT id
FROM price;

Es sollte Folgendes zurückgeben:

PostgreSQL Union all

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:

SORTIEREN NACH

Preis2:

SORTIEREN NACH

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:

SORTIEREN NACH

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:

SORTIEREN NACH

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

  1. Klicken Sie in der Navigationsleiste links auf Datenbanken.
  2. Klicken Sie auf Demo.

Verwenden Sie die PostgreSQL Union mit pgAdmin

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.

Verwenden Sie die PostgreSQL Union mit pgAdmin

Es sollte Folgendes zurückgeben:

Verwenden Sie die PostgreSQL Union mit pgAdmin

Union all

Schritt 1) Melden Sie sich bei Ihrem pgAdmin-Konto an.

Schritt 2)

  1. Klicken Sie in der Navigationsleiste links auf Datenbanken.
  2. Klicken Sie auf Demo.

Verwenden Sie die PostgreSQL Alle mit pgAdmin vereinen

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“.

Verwenden Sie die PostgreSQL Alle mit pgAdmin vereinen

Es sollte Folgendes zurückgeben:

Verwenden Sie die PostgreSQL Alle mit pgAdmin vereinen

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:

Verwenden Sie die PostgreSQL BESTELLEN SIE NACH der Verwendung von pgAdmin

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