Softwaretests | Detaillierte Erklärung von UNION und UNION ALL in SQL

Einführung

In SQL (Structured Query Language) sind UNION und UNION ALL zwei Schlüsselwörter, die zum Zusammenführen von Abfrageergebnissätzen verwendet werden. Sie werden sehr häufig in Datenbankabfragen verwendet, es gibt jedoch einige wichtige Unterschiede zwischen ihnen. In diesem Artikel werden wir uns eingehend mit der Bedeutung, Verwendung und den Unterschieden zwischen UNION und UNION ALL befassen.

UNION-Betrieb

UNION wird verwendet, um die Ergebnismengen von zwei oder mehr Abfragen zusammenzuführen und eine eindeutige Ergebnismenge zurückzugeben, d. h. die Ergebnisse nach der Deduplizierung. Seine Syntax ist wie folgt:

SELECT column1, column2, ...
FROM table1
UNION
SELECT column1, column2, ...
FROM table2;

Vorsichtsmaßnahmen:

  • Jede SELECT-Anweisung muss die gleiche Anzahl von Feldern haben;
  • Entsprechende Felder in verschiedenen SELECT-Anweisungen müssen ähnliche Typen haben.

Anwendungsbeispiel:

Angenommen, wir haben zwei Tabellen employeesund contractors, die jeweils Daten für Mitarbeiter und Auftragnehmer enthalten. Jetzt möchten wir eindeutige Datensätze für alle Mitarbeiter und Auftragnehmer erhalten.

SELECT employee_id, first_name, last_name
FROM employees
UNION
SELECT contractor_id, first_name, last_name
FROM contractors;

Hinweis: Die UNION-Operation entfernt standardmäßig doppelte Datensätze. Wenn also in den Ergebnissen zweier Abfragen doppelte Datensätze vorhanden sind, wird nur einer zurückgegeben.

UNION ALL-Betrieb

UNION ALL wird auch zum Zusammenführen von Abfrageergebnissätzen verwendet, entfernt jedoch keine doppelten Datensätze. Es werden alle Datensätze zurückgegeben, die die Kriterien erfüllen. Seine Syntax ist wie folgt:

SELECT column1, column2, ...
FROM table1
UNION ALL
SELECT column1, column2, ...
FROM table2;

Anwendungsbeispiel:

Als Beispiel verwenden wir die obige employeesSummentabelle :contractors

SELECT employee_id, first_name, last_name
FROM employees
UNION ALL
SELECT contractor_id, first_name, last_name
FROM contractors;

Hinweis: UNION ALL entfernt keine Duplikate. Wenn in den Ergebnissen zweier Abfragen doppelte Datensätze vorhanden sind, werden alle zurückgegeben.

Der Unterschied zwischen UNION und UNION ALL

  • Deduplizierungsfunktion : UNION dedupliziert die Ergebnismenge und gibt eindeutige Datensätze zurück, während UNION ALL alle Datensätze zurückgibt, die die Bedingungen erfüllen, einschließlich doppelter Datensätze.
  • Leistung : Da UNION Deduplizierung und zusätzliche Verarbeitung während der Ausführung erfordert, ist UNION ALL bei der Verarbeitung großer Datenmengen im Allgemeinen leistungsstärker als UNION.
  • Anzahl der Ergebnismengen : UNION gibt möglicherweise weniger Ergebnismengen zurück als UNION ALL, da doppelte Datensätze entfernt werden.
  • Verwendungsszenario : Wenn Sie doppelte Datensätze entfernen müssen und keine übermäßigen Leistungsanforderungen haben, können Sie UNION verwenden. Wenn Sie alle Aufzeichnungen aufbewahren müssen oder höhere Leistungsanforderungen haben, können Sie UNION ALL verwenden.

Zusammenfassen

UNIONund UNION ALLsind zwei Schlüsselwörter, die in SQL zum Zusammenführen von Abfrageergebnissätzen verwendet werden. UNIONWird verwendet, um doppelte Datensätze zu entfernen und einen eindeutigen Ergebnissatz zurückzugeben, während UNION ALLalle Datensätze zurückgegeben werden, die die Kriterien erfüllen, einschließlich doppelter Datensätze. Wählen Sie bei der Verwendung den geeigneten Vorgang basierend auf dem Deduplizierungsbedarf und den Leistungsanforderungen aus. Verwenden Sie es, wenn Sie doppelte Datensätze entfernen müssen UNION. Verwenden Sie es, wenn Sie keine Duplikate entfernen müssen oder hohe Leistungsanforderungen haben UNION ALL. Wenn Sie die Unterschiede und anwendbaren Szenarien dieser beiden Vorgänge verstehen, können Sie SQL-Abfragen effizienter schreiben.

Hinweis: Einige Datenbanken unterstützen dies nicht . Sie können stattdessen FULL JOINverwenden .UNION ALLFULL JOIN

Abschließend möchte ich mich bei allen bedanken, die meinen Artikel sorgfältig gelesen haben. Gegenseitigkeit ist immer notwendig. Obwohl es keine sehr wertvolle Sache ist, können Sie es direkt verwenden, wenn Sie es verwenden können:

Diese Informationen sollten das umfassendste und vollständigste Vorbereitungslager für Freunde von [Softwaretests] sein. Dieses Lager hat auch Zehntausende von Testingenieuren auf der schwierigsten Reise begleitet. Ich hoffe, es kann Ihnen auch helfen!

Guess you like

Origin blog.csdn.net/2301_78276982/article/details/135458388