Der zum Verbinden oder Kombinieren von zwei Abfragen verwendete Operator ist kein anderer als SET-Operatoren. Operatoren, die in SET-Operatoren kategorisiert sind, lauten wie folgt:
- UNION-Operator.
- UNION ALL’-Operator.
- INTERSECT-Operator.
- MINUS-Operator.
Folgende Regeln müssen für den Betrieb mit dem SET-Operator befolgt werden:
- Die Anzahl der Spalten und die Reihenfolge der Spalten müssen gleich sein.
- Datentyp muss kompatibel sein.
Lassen Sie uns jeden der SET-Operatoren anhand von Beispielen verstehen.
Betrachten Sie die folgenden Tabellen zusammen mit den angegebenen Datensätzen.
Tabelle1:Mitarbeiter
MITARBEITERID | FIRST_NAME | NACHNAME | GEHALT | STADT | ABTEILUNG | MANAGERID | WORKING_HOURS | GESCHLECHT |
1001 | VAIBHAVI | MISHRA | 65000 | PUNE | ORACLE | 1 | 12 | F |
1002 | VAIBHAV | SHARMA | 60000 | NOIDA | ORACLE | 1 | 9 | M |
1003 | NICHIL | VANI | 50000 | JAIPUR | FMW | 2 | 10 | M |
2001 | PRACHI | SHARMA | 55500 | CHANDIGARH | ORACLE | 1 | 10 | F |
2002 | BHAVESH | JAIN | 65500 | PUNE | FMW | 2 | 12 | M |
2003 | RUSCHIKA | JAIN | 50000 | MUMBAI | TESTEN | 4 | 9 | F |
3001 | PRANOTI | SCHENDE | 55500 | PUNE | JAVA | 3 | 9 | F |
3002 | ANUJA | WO | 50500 | JAIPUR | FMW | 2 | 9 | F |
3003 | DEEPAM | JAUHARI | 58500 | MUMBAI | JAVA | 3 | 12 | M |
4001 | RAJESH | GOLD | 60500 | MUMBAI | TESTEN | 4 | 10 | M |
Tabelle2:Mitarbeiter.
MITARBEITERID | FIRST_NAME | NACHNAME | GEHALT | STADT | ABTEILUNG | MANAGERID | WORKING_HOURS | GESCHLECHT |
1001 | Vaibhav | Sharma | 65000 | PUNE | ORACLE | 1 | 12 | M |
1002 | Nikhil | Vani | 60000 | NOIDA | ORACLE | 1 | 9 | M |
1003 | Vaibhavi | Mishra | 50000 | JAIPUR | FMW | 2 | 10 | F |
2001 | Ruchika | Jain | 55500 | CHANDIGARH | ORACLE | 1 | 10 | F |
2002 | Prach | Sharma | 65500 | PUNE | FMW | 2 | 12 | F |
2003 | Bhavesh | Jain | 50000 | MUMBAI | TESTEN | 4 | 9 | M |
3001 | Deepam | Jauhari | 55500 | PUNE | JAVA | 3 | 9 | M |
3002 | ANUJA | WO | 50500 | JAIPUR | FMW | 2 | 9 | F |
3003 | Pranoti | Shende | 58500 | MUMBAI | JAVA | 3 | 12 | F |
4001 | RAJESH | GOLD | 60500 | MUMBAI | TESTEN | 4 | 10 | M |
Tabelle3:Manager.
Manager-ID | manager_name | manager_department |
1 | Snehdeep Kaur | ORACLE |
2 | Kirti Kirtane | FMW |
3 | Abhishek Manish | JAVA |
4 | Anupam Mishra | TESTEN |
Tabelle4:Manager1.
Manager-ID | manager_name | manager_department |
1 | Ishita Agrawal | ORACLE |
2 | Kirti Kirtane | FMW |
3 | Abhishek Manish | JAVA |
4 | Paul Oakip | TESTEN |
UNION-Operator
Der UNION-Operator ist der erste Operator, der zum Zusammenführen oder Kombinieren der zwei oder mehr SELECT-Anweisungen verwendet wird. Genau dann, wenn ihre Spaltenanzahl und Spaltenreihenfolge gleich sind.
Die duplizierten Zeilen werden in dem nach der UNION-Operation erhaltenen Ergebnis nicht berücksichtigt.
Die Syntax für die UNION-Operation lautet wie folgt:
SELECT * FROM TABLE_NAME1 UNION SELECT * FROM TABLE_NAME2;
Beispiel 1: Führen Sie eine Abfrage aus, um eine UNION-Operation zwischen der Employees-Tabelle und der Employee-Tabelle durchzuführen.
SELECT * FROM EMPLOYEES UNION SELECT * FROM EMPLOYEE;
In der obigen Abfrage haben wir zwei SELECT-Abfragen verwendet. Die erste SELECT-Abfrage ruft die Daten von Mitarbeitern ab und die zweite SELECT-Abfrage ruft die Daten von Mitarbeiterdaten ab, und die UNION-Operation wird für beide SELECT-Abfragen durchgeführt.
Die UNION-Operation verwirft doppelte Zeilen zwischen beiden Tabellen. Die folgende Ausgabe wird wie folgt angezeigt:
Beide Tabellendatensätze werden angezeigt, mit Ausnahme von doppelten Datensätzen.
Beispiel 2: Führen Sie eine Abfrage aus, um eine UNION-Operation zwischen der Employees-Tabelle und der Employee-Tabelle durchzuführen. Aber nur die Datensätze der Mitarbeiter aus der Mitarbeitertabelle anzeigen, die zur Stadt Mumbai gehören, und aus der Mitarbeitertabelle nur die Datensätze der Mitarbeiter, deren Mitarbeitergehalt größer als 50000 und kleiner als 60000 ist.
SELECT * FROM EMPLOYEES WHERE CITY = 'MUMBAI' UNION SELECT * FROM EMPLOYEE WHERE SALARY > 50000 AND SALARY < 60000;
In der obigen Abfrage haben wir zwei SELECT-Abfragen verwendet. Die erste SELECT-Abfrage ruft nur die Datensätze aus der Employees-Tabelle ab, deren Mitarbeiter zur Stadt Mumbai gehören. Und führen Sie die UNION-Operation mit der zweiten SELECT-Abfrage aus, um nur die Datensätze aus der Mitarbeitertabelle abzurufen, deren Mitarbeitergehalt größer als 50000, aber kleiner als 60000 ist. Die UNION-Operation verwirft doppelte Zeilen zwischen beiden Tabellen.
Die folgende Ausgabe wird wie folgt angezeigt:
Beide Tabellendatensätze werden angezeigt, mit Ausnahme von doppelten Datensätzen.
Beispiel 3: Führen Sie eine Abfrage aus, um eine UNION-Operation zwischen der Employees-Tabelle und der Employee-Tabelle durchzuführen. Wir wollen nur die Datensätze aus der Employees-Tabelle, deren Mitarbeiterstadt zu „Pune“ und „Jaipur“ gehört.
SELECT* FROM EMPLOYEES WHERE CITY IN ('PUNE', 'JAIPUR') UNION SELECT * FROM EMPLOYEE;
In der obigen Abfrage haben wir zwei SELECT-Abfragen verwendet. Die erste SELECT-Abfrage ruft die Datensätze, deren Mitarbeiter zu den Städten „Pune“ und „Jaipur“ gehören, aus der Tabelle „Employees“ ab. Die UNION-Operation wird mit den Datensätzen durchgeführt, die von der zweiten SELECT-Abfrage aus der Tabelle employee.
abgerufen werdenDie UNION-Operation verwirft doppelte Zeilen zwischen beiden Tabellen. Die folgende Ausgabe wird wie folgt angezeigt:
Wie wir alle sehen können, handelt es sich bei den ersten fünf Datensätzen um die Mitarbeiter, die zur Stadt Pune oder Jaipur gehören. Und Restdatensätze stammen aus der Employee-Tabelle, der zweiten SELECT-Abfrage.
Beide Tabellendatensätze werden angezeigt, mit Ausnahme von doppelten Datensätzen.
Beispiel 4: Führen Sie eine Abfrage aus, um eine UNION-Operation zwischen der Employees-Tabelle und der Employee-Tabelle durchzuführen. Wir wollen nur die Datensätze aus der Employee-Tabelle, deren Mitarbeiter-Vorname mit V.
beginntSELECT * FROM EMPLOYEES UNION SELECT * FROM EMPLOYEE WHERE FIRST_NAME LIKE 'V%';
In der obigen Abfrage haben wir zwei SELECT-Abfragen verwendet. Die erste SELECT-Abfrage ruft alle Datensätze aus der Employees-Tabelle ab. Die UNION-Operation wird mit den Datensätzen durchgeführt, die von der zweiten SELECT-Abfrage aus der Tabelle employee abgerufen werden, deren Vorname mit 'V' beginnt.
Die UNION-Operation verwirft doppelte Zeilen zwischen beiden Tabellen. Die folgende Ausgabe wird wie folgt angezeigt:
Wie wir alle wissen, stammen die ersten 10 Ergebnisse aus der Employees-Tabelle und der Rest aus der Employees-Tabelle, deren Vorname mit „V“ beginnt.
Beispiel 5: Führen Sie eine Abfrage aus, um eine UNION-Operation zwischen der Manager-Tabelle und der Manager1-Tabelle durchzuführen.
SELECT * FROM MANAGER UNION SELECT * FROM MANAGER1;
In der obigen Abfrage haben wir zwei SELECT-Abfragen verwendet. Die erste SELECT-Abfrage ruft die Daten aus dem Manager ab und die zweite SELECT-Abfrage ruft die Daten aus den Daten von Manager1 ab, und die UNION-Operation wird für beide SELECT-Abfragen ausgeführt.
Die UNION-Operation verwirft doppelte Zeilen zwischen beiden Tabellen. Die folgende Ausgabe wird wie folgt angezeigt:
Beide Tabellendatensätze werden angezeigt, mit Ausnahme von doppelten Datensätzen.
UNION ALL Operatoren
Der UNION ALL-Operator kombiniert alle Daten aus beiden Abfragen. Im UNION-Operator wurden doppelte Datensätze im Ergebnis nicht berücksichtigt, aber UNION ALL berücksichtigte doppelte Datensätze im Ergebnis, das nach der Durchführung der UNION ALL-Operation erhalten wurde.
Die Syntax für die UNION ALL-Operation lautet wie folgt:
SELECT * FROM TABLE_NAME1 UNION ALL SELECT * FROM TABLE_NAME2;
Beispiel 1: Führen Sie eine Abfrage aus, um die UNION ALL-Operation zwischen der Employees-Tabelle und der Employee-Tabelle auszuführen.
SELECT * FROM EMPLOYEES UNION ALL SELECT * FROM EMPLOYEE;
In der obigen Abfrage haben wir zwei SELECT-Abfragen verwendet. Die erste SELECT-Abfrage ruft die Daten von Mitarbeitern ab und führt die UNION ALL-Operation mit den Daten aus, die von der zweiten SELECT-Abfrage abgerufen werden, und ruft die Daten aus der Mitarbeitertabelle ab.
Die folgende Ausgabe wird wie folgt angezeigt:
Alle Datensätze aus den Tabellen Employees und Employee werden angezeigt, doppelte Datensätze werden ebenfalls angezeigt, wenn wir die UNION ALL-Operation durchführen.
Beispiel 2: Führen Sie eine Abfrage aus, um die UNION ALL-Operation zwischen der Employees-Tabelle und der Employee-Tabelle auszuführen. Zeigen Sie jedoch nur die Datensätze der Mitarbeiter aus der Mitarbeitertabelle an, die zur Stadt Mumbai gehören. Aus der Mitarbeitertabelle nur die Datensätze der Mitarbeiter, deren Mitarbeitergehalt 60500 beträgt und deren Stadt „Mumbai“ ist.
SELECT * FROM EMPLOYEES WHERE CITY = 'MUMBAI' UNION ALL SELECT * FROM EMPLOYEE WHERE SALARY = 60500 AND CITY = 'MUMBAI';
In der obigen Abfrage haben wir zwei SELECT-Abfragen verwendet. Die erste SELECT-Abfrage ruft nur die Datensätze aus der Employees-Tabelle ab, deren Mitarbeiter zur Stadt Mumbai gehören. Und führen Sie die UNION ALL-Operation mit der zweiten SELECT-Abfrage aus, um nur die Datensätze abzurufen, deren Mitarbeitergehalt 60500 und die Stadt „Mumbai“ aus der Mitarbeitertabelle ist.
Die folgende Ausgabe wird wie folgt angezeigt:
Beide Tabellendatensätze werden angezeigt, einschließlich doppelter Datensätze, wenn wir UNION ALL-Operationen durchführen.
Beispiel 3: Führen Sie eine Abfrage aus, um eine UNION-Operation zwischen der Employees-Tabelle und der Employee-Tabelle durchzuführen. Wir wollen nur die Datensätze aus der Employees-Tabelle, deren Mitarbeiterstadt zu „Pune“, „Mumbai“ und „Jaipur“ gehört.
SELECT* FROM EMPLOYEES WHERE CITY IN ('PUNE', 'MUMBAI', 'JAIPUR') UNION ALL SELECT * FROM EMPLOYEE;
In der obigen Abfrage haben wir zwei SELECT-Abfragen verwendet. Die erste SELECT-Abfrage ruft die Datensätze, deren Mitarbeiter zu den Städten „Pune“, „Mumbai“ und „Jaipur“ gehören, aus der Tabelle „Employees“ ab. Die UNION ALL-Operation wird mit den Datensätzen ausgeführt, die aus der zweiten SELECT-Abfrage aus der Tabelle employee.
abgerufen wurdenDie folgende Ausgabe wird wie folgt angezeigt:
Beide Tabellendatensätze werden angezeigt, einschließlich doppelter Datensätze, wenn wir UNION ALL-Operationen durchführen.
Beispiel 4: Führen Sie eine Abfrage aus, um die UNION ALL-Operation zwischen der Manager-Tabelle und der Manager1-Tabelle auszuführen.
SELECT * FROM MANAGER UNION ALL SELECT * FROM MANAGER1;
In der obigen Abfrage haben wir zwei SELECT-Abfragen verwendet. Die erste SELECT-Abfrage ruft die Daten von Manager ab und führt UNION ALL-Operationen mit den Daten aus, die von der zweiten SELECT-Abfrage abgerufen werden, und ruft die Daten aus der Tabelle manager1 ab.
Die folgende Ausgabe wird wie folgt angezeigt:
Alle Datensätze aus den Tabellen Manager und Manager1 werden angezeigt; doppelte Datensätze werden angezeigt, wenn wir UNION ALL-Operationen durchführen.
INTERSECT-Operatoren
Der Intersect-Operator wird verwendet, um zwei oder mehr SELECT-Anweisungen zu kombinieren, aber er zeigt nur die Daten ähnlich der SELECT-Anweisung an.
Die Syntax für die INTERSECT-Operation lautet wie folgt:
SELECT * FROM TABLE_NAME1 INTERSECT SELECT * FROM TABLE_NAME2;
Beispiel 1: Führen Sie eine Abfrage aus, um eine INTERSECT-Operation zwischen der Employees-Tabelle und der Employee-Tabelle durchzuführen.
SELECT * FROM EMPLOYEES INTERSECT SELECT * FROM EMPLOYEE;
In der obigen Abfrage haben wir zwei SELECT-Abfragen verwendet. Die erste SELECT-Abfrage ruft die Daten von Mitarbeitern ab und führt eine INTERSECT-Operation mit den Daten durch, die von der zweiten SELECT-Abfrage abgerufen werden, um die Daten aus der Mitarbeitertabelle abzurufen.
Die folgende Ausgabe wird wie folgt angezeigt:
Aus beiden Tabellen werden nur ähnliche Datensätze angezeigt, da wir die INTERSECT-Operation zwischen der Employees-Tabelle und der Employee-Tabelle durchgeführt haben.
Beispiel 2: Führen Sie eine Abfrage aus, um eine INTERSECT-Operation zwischen der Manager-Tabelle und der Manager1-Tabelle auszuführen.
SELECT * FROM MANAGER INTERSECT SELECT * FROM MANAGER1;
In der obigen Abfrage haben wir zwei SELECT-Abfragen verwendet. Die erste SELECT-Abfrage ruft die Daten von Manager ab und führt eine INTERSECT-Operation mit den Daten aus, die von der zweiten SELECT-Abfrage abgerufen werden, und ruft die Daten aus der Tabelle Manager1 ab.
Die folgende Ausgabe wird wie folgt angezeigt:
Aus beiden Tabellen werden nur ähnliche Datensätze angezeigt, da wir die INTERSECT-Operation zwischen der Manager-Tabelle und der Manager1-Tabelle durchgeführt haben.
MINUS-Operatoren
Der MINUS-Operator wird verwendet, um die Zeilen zurückzugeben, die in der ersten Abfrage vorhanden sind, aber in den restlichen Abfragen fehlen, ohne Duplikate.
Die Syntax für die MINUS-Operation lautet wie folgt.
SELECT * FROM TABLE_NAME1 EXCEPT SELECT * FROM TABLE_NAME2;
Hinweis: Das Schlüsselwort MINUS wird nur in ORACLE-Datenbanken unterstützt. Wir können das Schlüsselwort EXCEPT für andere Datenbanken verwenden, um eine ähnliche Operation durchzuführen.
Beispiel 1: Führen Sie eine Abfrage aus, um eine MINUS-Operation zwischen der Employees-Tabelle und der Employee-Tabelle durchzuführen.
SELECT * FROM EMPLOYEES EXCEPT SELECT * FROM EMPLOYEE;
In der obigen Abfrage haben wir zwei SELECT-Abfragen verwendet. Die erste SELECT-Abfrage ruft die Daten von Mitarbeitern ab und führt eine MINUS-Operation mit den Daten aus, die von der zweiten SELECT-Abfrage abgerufen werden, und ruft die Daten aus der Mitarbeitertabelle ab.
Die folgende Ausgabe wird wie folgt angezeigt:
Aus beiden Tabellen werden nur nicht übereinstimmende Datensätze angezeigt, da wir eine MINUS-Operation zwischen der Employees-Tabelle und der Employee-Tabelle durchgeführt haben.
Beispiel 2: Führen Sie eine Abfrage aus, um eine MINUS-Operation zwischen der Manager-Tabelle und der Manager1-Tabelle durchzuführen.
SELECT * FROM MANAGER EXCEPT SELECT * FROM MANAGER1;
In der obigen Abfrage haben wir zwei SELECT-Abfragen verwendet. Die erste SELECT-Abfrage ruft die Daten von Manager ab und führt eine MINUS-Operation mit den Daten aus, die von der zweiten SELECT-Abfrage abgerufen wurden, und ruft die Daten aus der Tabelle Manager1 ab.
Die folgende Ausgabe wird wie folgt angezeigt:
Aus beiden Tabellen werden nur nicht übereinstimmende Datensätze angezeigt, da wir eine MINUS-Operation zwischen der Manager-Tabelle und der Manager1-Tabelle durchgeführt haben.