PostgreSQL Union, Union ALL mit Beispielen

โšก Intelligente Zusammenfassung

PostgreSQL UNION kombiniert die Ergebnisse von zwei oder mehr SELECT-Anweisungen zu einem einzigen Resultset und entfernt doppelte Zeilen, wรคhrend UNION ALL jede Zeile beibehรคlt und somit eine schnellere Option darstellt, wenn Duplikate keine Rolle spielen.

  • ๐Ÿ”— Kombinieren: UNION fรผhrt Zeilen aus mehreren SELECT-Anweisungen zu einem einzigen Resultset zusammen.
  • รฐลธยงยน Duplikate: UNION entfernt doppelte Zeilen, wรคhrend UNION ALL jede รผbereinstimmende Zeile beibehรคlt.
  • ๐Ÿ“ Regeln: Jede SELECT-Anweisung muss die gleiche Anzahl von Spalten mit kompatiblen Datentypen zurรผckgeben.
  • ๏ธ SORTIEREN NACH: Ein einzelner ORDER BY-Befehl am Ende sortiert das kombinierte Ergebnis-Set.
  • โšก Eigenschaften: UNION ALL lรคuft schneller, weil der Schritt zum Entfernen von Duplikaten รผbersprungen wird.
  • ๐Ÿค– KI-Hilfe: KI-Assistenten richten Spalten aus und wรคhlen zwischen UNION und UNION ALL.

PostgreSQL UNION und UNION ALL

Was ist PostgreSQL Union?

Das 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 die gleiche Anzahl an Spalten 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 keinen Einfluss auf das Ergebnis.

PostgreSQL Union

Der UNION-Operator entfernt Duplikate, auf die gleiche Weise wie SELECT DISTINCT Das tun wir. Lassen Sie uns das 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 SELECT-Anweisungen mรผssen die gleiche Anzahl an Ausdrรผcken enthalten.

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

Das 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 verwendet man Union und wann Union All?

Verwenden Sie den UNION-Operator, wenn Sie mehrere Tabellen mit รคhnlicher Struktur haben, die aus einem bestimmten Grund aufgeteilt wurden. Er eignet sich gut, um doppelte Datensรคtze zu entfernen.

Verwenden Sie den Operator UNION ALL, wenn Sie keine doppelten Datensรคtze entfernen oder eliminieren mรผssen.

Verwenden von pgAdmin

Schauen wir uns nun an, wie alle drei Aktionen mit pgAdmin durchgefรผhrt werden.

Anleitung von PostgreSQL Union mit pgAdmin

Im Folgenden finden Sie eine schrittweise Anleitung zur Verwendung. PostgreSQL UNION รผber pgAdmin:

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

Schritt 2) Klicken Sie in der Navigationsleiste auf der linken Seite auf Datenbanken und anschlieรŸend auf Demo.

Arbeiten jederzeit weiterbearbeiten kรถnnen. Jede Prรคsentation und jeder KI-Avatar, den Sie von Grund auf neu erstellen oder hochladen,  PostgreSQL Union mit pgAdmin

Schritt 3) 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โ€œ.

Arbeiten jederzeit weiterbearbeiten kรถnnen. Jede Prรคsentation und jeder KI-Avatar, den Sie von Grund auf neu erstellen oder hochladen,  PostgreSQL Union mit pgAdmin

Es sollte Folgendes zurรผckgeben:

Arbeiten jederzeit weiterbearbeiten kรถnnen. Jede Prรคsentation und jeder KI-Avatar, den Sie von Grund auf neu erstellen oder hochladen,  PostgreSQL Union mit pgAdmin

Union all

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

Schritt 2) Klicken Sie in der Navigationsleiste auf der linken Seite auf Datenbanken und anschlieรŸend auf Demo.

Arbeiten jederzeit weiterbearbeiten kรถnnen. Jede Prรคsentation und jeder KI-Avatar, den Sie von Grund auf neu erstellen oder hochladen,  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โ€œ.

Arbeiten jederzeit weiterbearbeiten kรถnnen. Jede Prรคsentation und jeder KI-Avatar, den Sie von Grund auf neu erstellen oder hochladen,  PostgreSQL Alle mit pgAdmin vereinen

Es sollte Folgendes zurรผckgeben:

Arbeiten jederzeit weiterbearbeiten kรถnnen. Jede Prรคsentation und jeder KI-Avatar, den Sie von Grund auf neu erstellen oder hochladen,  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:

Arbeiten jederzeit weiterbearbeiten kรถnnen. Jede Prรคsentation und jeder KI-Avatar, den Sie von Grund auf neu erstellen oder hochladen,  PostgreSQL BESTELLEN SIE NACH der Verwendung von pgAdmin

Die Ergebnisse sind bestellt.

Laden Sie die in diesem Tutorial verwendete Datenbank herunter

Hรคufig gestellte Fragen

UNION ALL ist schneller, da es einfach Zeilen aneinanderreiht. UNION hingegen muss die kombinierten Zeilen sortieren oder hashen, um Duplikate zu entfernen, was zusรคtzlichen Aufwand bedeutet. Wenn Duplikate keine Rolle spielen, ist UNION ALL die effizientere Wahl.

Ja. Jede SELECT-Anweisung in einer UNION-Anweisung muss die gleiche Anzahl an Spalten zurรผckgeben, und die รผbereinstimmenden Spalten mรผssen kompatible Datentypen in der gleichen Reihenfolge aufweisen. Andernfalls PostgreSQL lรถst einen Fehler aus und die Abfrage schlรคgt fehl.

Ja. Die Spaltennamen kรถnnen unterschiedlich sein, da UNION Spalten anhand ihrer Position und nicht anhand ihres Namens vergleicht. Die Datentypen mรผssen jedoch kompatibel sein, und das Ergebnis-Set verwendet die Spaltennamen der ersten SELECT-Anweisung.

UNION ordnet die Zeilen zweier Ergebnismengen vertikal in einer Spalte an und entfernt dabei Duplikate. JOIN hingegen kombiniert Spalten aus verschiedenen Tabellen horizontal anhand eines gemeinsamen Schlรผssels, wodurch die Zeilen verbreitert statt aneinandergereiht werden.

ORDER BY sortiert das endgรผltige kombinierte Ergebnis, also PostgreSQL Es ist nur eine ORDER BY-Klausel nach der letzten SELECT-Anweisung zulรคssig. Das Sortieren der einzelnen Abfragen im Vorfeld wรคre sinnlos, sobald deren Zeilen zusammengefรผhrt werden.

KI-Assistenten wie GitHub Copilot gleichen die Spaltenlisten jeder SELECT-Anweisung ab, kennzeichnen nicht รผbereinstimmende Datentypen und empfehlen UNION oder UNION ALL, je nachdem, ob Duplikate beibehalten werden sollen, wodurch hรคufige Abfragefehler reduziert werden.

Ja. Durch die Analyse Ihrer Tabellen und Ihres Ziels kann ein KI-Assistent feststellen, ob doppelte Zeilen mรถglich und sinnvoll sind. AnschlieรŸend schlรคgt er UNION ALL vor, wenn Duplikate akzeptabel sind, um die Geschwindigkeit zu erhรถhen, oder UNION, wenn sie entfernt werden mรผssen.

UNION gibt Zeilen zurรผck, die in mindestens einer der beiden Abfragen gefunden wurden. INTERSECT gibt nur Zeilen zurรผck, die in beiden Abfragen vorhanden sind, und EXCEPT gibt Zeilen aus der ersten, aber nicht aus der zweiten Abfrage zurรผck. Alle drei Funktionen entfernen standardmรครŸig Duplikate.

Fassen Sie diesen Beitrag mit folgenden Worten zusammen: