Oracle
 sql >> Datenbank >  >> RDS >> Oracle

Oracle Set-Operatoren

Verwenden von Oracle Set-Operatoren (Union, Union All, Intersect und Minus/Except)

Oracle Set-Operatoren können verwendet werden, um Daten aus mehreren Tabellen auszuwählen. Sie kombinieren die Ergebnisse von zwei oder mehr Abfragen. Bei Verwendung der Set-Operatoren

a) Jede SELECT-Klausel muss die gleiche Anzahl von Spalten

haben

b) Spalte muss vom gleichen Datentyp sein

c) Spalten sollten in allen Select-Klauseln in derselben Reihenfolge angegeben werden.

Es gibt 4 Set-Operatoren:

UNION Es gibt alle eindeutigen Zeilen zurück, die von beiden Abfragen zurückgegeben werden
ALLE VERBINDEN Es gibt alle Zeilen zurück, einschließlich Duplikate
SCHNITT Es gibt nur die Zeilen zurück, die von beiden Abfragen zurückgegeben werden
Minus Es gibt eindeutige Zeilen zurück, die von der ersten Abfrage ausgewählt wurden, aber nicht die Zeilen, die von der zweiten Abfrage ausgewählt wurden

Oracle Union-Operator:

Der Oracle Union-Operator wird verwendet, um die Ergebnismengen von zwei oder mehr SELECT-Anweisungen zu kombinieren. Es kombiniert die Ergebnismenge der beiden SELECT-Anweisungen und entfernt doppelte Zeilen zwischen ihnen. Es gibt also im Grunde die unterschiedlichen Zeilen zurück

SELECT city_name FROM CUST_DATA
UNION
SELECT city_name FROM SUPP_DATA;

Diese Abfrage gibt unterschiedliche Zeilen von Städten aus "Cust_data" und "Supp_data" zurück

Oracle Union Alle

Der Oracle Union All-Operator wird verwendet, um die Ergebnismengen von zwei oder mehr SELECT-Anweisungen zu kombinieren. Es kombiniert die Ergebnismengen der beiden SELECT-Anweisungen und gibt so zurück, wie sie sind. Je nach Datensatz kann es also auch Duplikate enthalten

SELECT city_name FROM CUST_DATA
UNION All
SELECT city_name FROM SUPP_DATA
;

Diese Abfrage gibt alle Zeilen (auch doppelte Zeilen) von Städten aus „Cust_data“ und „Supp_data“

zurück

Unterschied zwischen Union und Union All in Oracle

Union gibt die unterschiedlichen Zeilen zurück, während Union all alle Zeilen zurückgibt. Daher müssen wir bei der Auswahl dieser Mengenoperatoren sehr vorsichtig sein

Oracle Intersect

Der Oracle Intersect-Operator wird verwendet, um die Ergebnismengen von zwei oder mehr SELECT-Anweisungen zu kombinieren. Es kombiniert die beiden SELECT-Anweisungsdatensätze und gibt die unterschiedlichen gemeinsamen Zeilen zwischen den Anweisungen zurück. Wenn also ein Datensatz in einer Abfrage existiert und in der anderen nicht, wird er aus den INTERSECT-Ergebnissen weggelassen.

Die Ergebnisse werden durch den schattierten Teil in der obigen Abbildung gezeigt

SELECT city_name FROM CUST_DATA
INTERSECT
SELECT city_name FROM SUPP_DATA
;

Diese Abfrage gibt den gemeinsamen Stadtnamen aus „Cust_data“ und „Supp_data“

zurück

Unterschied zwischen Intersect Vs Join

1) Der INTERSECT-Operator wird verwendet, um die gemeinsamen Datensätze aus beiden Select-Klauseln des Intersect-Operators abzurufen, während Join verwendet wird, um Daten aus zwei Tabellen basierend auf einer bestimmten Bedingung abzurufen.
2) INTERSECT führt den Vergleich für alle Spalten durch, während INNER JOIN nur die angegebenen Spalten.
3) Der INTERSECT-Operator gibt fast dieselben Ergebnisse wie die INNER JOIN-Klausel viele Male zurück.

Orakel Minus

SQL-Minusoperator wird verwendet, um die Ergebnismengen von zwei oder mehr SELECT-Anweisungen zu kombinieren. Es kombiniert die beiden SELECT-Anweisungen und gibt die Zeilen zurück, die aus der ersten Auswahlanweisung ausgewählt wurden, und entfernt dann alle Zeilen aus dem Datensatz, die aus der zweiten Auswahlanweisung abgerufen wurden

Die Ergebnisse werden durch den schattierten Teil in der obigen Abbildung gezeigt

SELECT city_name FROM CUST_DATA
MINUS
SELECT city_name FROM SUPP_DATA
;

Diese Abfrage gibt den Stadtnamen aus „Cust_data“ abzüglich des Stadtnamens „Supp_data“

zurück

Da hier alle von der Select-Anweisung zurückgegebenen Daten gleich sind, wurden keine Zeilen generiert.

Fügen wir eine andere Zeile in cust_data ein und sehen uns die Ergebnisse an

Mal sehen, ob wir cust_data von supp_data abziehen

SELECT city_name FROM SUPP_DATA
MINUS
SELECT city_name FROM CUST_DATA
;

Wir verwenden keinen Minus-Operator in vielen RDBMS wie SQL Server, MySQL. Dort verwenden wir außer anstelle von minus und hat dieselbe Funktionalität wie minus

Diese All-SQL-Set-Operatoren gelten für RDBMS, die auf dem Markt verwendet werden, wie Oracle, MySQL, SQL Server, Postgres, Teradata

Verwandte Artikel
Doppelte Datensätze in Oracle löschen:Tipps und Methoden zum Löschen doppelter Zeilen aus der Oracle-Tabelle. Es werden verschiedene Optionen angeboten, um die doppelten Zeilen ohne Probleme zu löschen.
Oracle Sql-Tutorials:Enthält die Liste aller nützlichen Oracle Sql-Artikel. Erkunden Sie sie, um mehr über Oracle Sql zu erfahren, selbst wenn Sie Oracle Sql kennen
Fragen zu Oracle-Interviews:Auf dieser Seite finden Sie die 49 häufigsten Fragen und Antworten zu Oracle-Interviews:Grundlagen, Oracle SQL, das Ihnen bei Vorstellungsgesprächen hilft. Zusätzliches Material wird ebenfalls bereitgestellt
Where-Klausel in Oracle :Einschränkung des Datensatzes, Where-Klausel, What is Where-Klausel in SQL-Anweisungen,
Einzelzeilenfunktionen des Vergleichsoperators in Oracle :Sehen Sie sich dies an, um Einzelzeilenfunktionen in SQL, Oracle-Daten herauszufinden Funktionen,Numerische Funktionen in SQL,Zeichenfunktion in SQL