PostgreSQL Union, Union ALL mit Beispielen

Inhaltsverzeichnis:

Anonim

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)

  1. Klicken Sie in der Navigationsleiste links auf Datenbanken.
  2. 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)

  1. Klicken Sie in der Navigationsleiste links auf Datenbanken.
  2. 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