Der SQL-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:
SELECT COLUMN_NAME1, COLUMN_NAME2, COLUMN_NAME3 FROM TABLE_NAME1 INTERSECT SELECT COLUMN_NAME1, COLUMN_NAME2, COLUMN_NAME3 FROM TABLE_NAME2;
Bei Verwendung des INTERSECT-Operators sind folgende Regeln zu befolgen:
- Die Anzahl der Spalten und die Reihenfolge der Spalten müssen gleich sein.
- Datentyp muss kompatibel sein.
Lassen Sie uns das Konzept von SQL INTERSECT anhand von Beispielen verstehen.
Betrachten Sie die folgenden Tabellen zusammen mit den angegebenen Datensätzen.
Tabelle 1:Schüler
STUDENT_ID | STUDENT_NAME | PHYSICS_MARKS | CHEMISTRY_MARKS | MATHS_MARKS | TOTAL_MARKS |
1 | NEHA | 85 | 88 | 100 | 273 |
2 | VISHAL | 70 | 90 | 82 | 242 |
3 | SAMKEET | 75 | 88 | 96 | 259 |
4 | NICHIL | 60 | 75 | 80 | 215 |
5 | YOGESH | 56 | 65 | 78 | 199 |
6 | ANKITA | 95 | 85 | 96 | 276 |
7 | SONAM | 98 | 89 | 100 | 287 |
8 | VINEET | 85 | 90 | 100 | 275 |
9 | SANKET | 86 | 78 | 65 | 229 |
10 | PRACHI | 90 | 80 | 75 | 245 |
101 | SNEHA | 85 | 88 | 100 | 273 |
103 | VISHAL | 75 | 88 | 96 | 259 |
Tabelle 2:Gestüt
STUDENT_ID | STUDENT_NAME | PHYSICS_MARKS | CHEMISTRY_MARKS | MATHS_MARKS | TOTAL_MARKS |
4 | NICHIL | 60 | 75 | 80 | 215 |
6 | ANKITA | 95 | 85 | 96 | 276 |
7 | SONAM | 98 | 89 | 100 | 287 |
9 | SANKET | 86 | 78 | 65 | 229 |
101 | SNEHA | 85 | 88 | 100 | 273 |
102 | SAMKEET | 70 | 90 | 82 | 242 |
103 | VISHAL | 75 | 88 | 96 | 259 |
105 | YOGESHWARI | 56 | 65 | 78 | 199 |
106 | VINAY | 85 | 90 | 100 | 275 |
107 | PRASHAKA | 90 | 80 | 75 | 245 |
8 | VINEET | 85 | 90 | 100 | 275 |
Beispiel 1: Führen Sie eine Abfrage aus, um eine INTERSECT-Operation zwischen der Student-Tabelle und der Stud-Tabelle durchzuführen.
SELECT * FROM STUDENT INTERSECT SELECT * FROM STUD;
In der obigen Abfrage haben wir zwei SELECT-Abfragen verwendet. Die erste SELECT-Abfrage ruft die Daten aus der Student-Tabelle ab. Es führt eine INTERSECT-Operation mit den Daten aus, die von der zweiten SELECT-Abfrage abgerufen wurden, die die Daten aus der Stud-Tabelle abruft. Nur ähnliche Datensätze zwischen diesen beiden Tabellen werden ausgewählt.
Die Ausgabe der obigen Abfrage ist:
STUDENT_ID | STUDENT_NAME | PHYSICS_MARKS | CHEMISTRY_MARKS | MATHS_MARKS | TOTAL_MARKS |
4 | NICHIL | 60 | 75 | 80 | 215 |
6 | ANKITA | 95 | 85 | 96 | 276 |
7 | SONAM | 98 | 89 | 100 | 287 |
8 | VINEET | 85 | 90 | 100 | 275 |
9 | SANKET | 86 | 78 | 65 | 229 |
101 | SNEHA | 85 | 88 | 100 | 273 |
103 | VISHAL | 75 | 88 | 96 | 259 |
Es werden nur gemeinsame Datensätze zwischen der Student-Tabelle und den Stud-Tabellen angezeigt.
Beispiel 2: Führen Sie eine Abfrage aus, um eine INTERSECT-Operation zwischen der Student-Tabelle und der Stud-Tabelle durchzuführen, aber zeigen Sie nur die Student-Datensätze aus der Stud-Tabelle an, bei denen Mathematiknoten gleich 100 sind.
SELECT * FROM STUDENT INTERSECT SELECT * FROM STUD WHERE MATHS_MARKS = 100;
Die Ausgabe der obigen Abfrage ist:
STUDENT_ID | STUDENT_NAME | PHYSICS_MARKS | CHEMISTRY_MARKS | MATHS_MARKS | TOTAL_MARKS |
7 | SONAM | 98 | 89 | 100 | 287 |
8 | VINEET | 85 | 90 | 100 | 275 |
101 | SNEHA | 85 | 88 | 100 | 273 |
Es werden nur die Datensätze der Studenten angezeigt, deren mathematische Noten gleich 100 aus der Stud-Tabelle sind und die sowohl in der Student- als auch in der Stud-Tabelle gleich sind.
Beispiel 3: Führen Sie eine Abfrage aus, um eine INTERSECT-Operation zwischen der Student-Tabelle und der Stud-Tabelle durchzuführen, aber zeigen Sie nur die Student-Datensätze aus der Student-Tabelle an, bei denen Chemienoten größer als 80 sind.
SELECT * FROM STUDENT WHERE CHEMISTRY_MARKS > 80 INTERSECT SELECT * FROM STUD;
Die Ausgabe der obigen Abfrage ist:
STUDENT_ID | STUDENT_NAME | PHYSICS_MARKS | CHEMISTRY_MARKS | MATHS_MARKS | TOTAL_MARKS |
6 | ANKITA | 95 | 85 | 96 | 276 |
7 | SONAM | 98 | 89 | 100 | 287 |
8 | VINEET | 85 | 90 | 100 | 275 |
101 | SNEHA | 85 | 88 | 100 | 273 |
103 | VISHAL | 75 | 88 | 96 | 259 |
Es werden nur die Datensätze der Studenten angezeigt, deren Chemienoten größer als 80 aus der Student-Tabelle sind und die sowohl in der Student- als auch in der Stud-Tabelle gleich sind.
Beispiel 4: Führen Sie eine Abfrage aus, um eine INTERSECT-Operation zwischen der Schülertabelle und der Stud-Tabelle durchzuführen, und zeigen Sie nur die Schülerdatensätze an, bei denen die Physiknoten größer als 75 aus der Schülertabelle sind, und wählen Sie zweitens Abfragen aus, die nur die Schülerdatensätze anzeigen, bei denen die Mathematiknoten größer als 90 sind Stud.
SELECT * FROM STUDENT WHERE PHYSICS_MARKS > 75 INTERSECT SELECT * FROM STUD WHERE MATHS_MARKS > 90;
Die Ausgabe der obigen Abfrage ist:
STUDENT_ID | STUDENT_NAME | PHYSICS_MARKS | CHEMISTRY_MARKS | MATHS_MARKS | TOTAL_MARKS |
6 | ANKITA | 95 | 85 | 96 | 276 |
7 | SONAM | 98 | 89 | 100 | 287 |
8 | VINEET | 85 | 90 | 100 | 275 |
101 | SNEHA | 85 | 88 | 100 | 273 |
Es werden nur die Datensätze der Studenten angezeigt, deren Physiknoten größer als 75 aus der Student-Tabelle sind und deren Mathematiknoten größer als 90 aus der Stud-Tabelle sind und die sowohl in der Student- als auch in der Stud-Tabelle gleich sind.