Database
 sql >> Datenbank >  >> RDS >> Database

SET-Operatoren in SQL

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:

  1. UNION-Operator.
  2. UNION ALL’-Operator.
  3. INTERSECT-Operator.
  4. 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 werden

Die 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.

beginnt
SELECT * 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 wurden

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 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.