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

INTERSEZIONE SQL

L'operatore di intersezione SQL viene utilizzato per combinare due o più istruzioni SELECT, ma visualizza solo i dati simili all'istruzione SELECT.

La sintassi per l'operazione INTERSECT:

SELECT COLUMN_NAME1, COLUMN_NAME2, COLUMN_NAME3 FROM TABLE_NAME1 INTERSECT SELECT COLUMN_NAME1, COLUMN_NAME2, COLUMN_NAME3 FROM TABLE_NAME2;

Le regole da seguire utilizzando l'operatore INTERSECT sono le seguenti:

  1. Il numero di colonne e l'ordine delle colonne devono essere gli stessi.
  2. Il tipo di dati deve essere compatibile.

Comprendiamo il concetto di SQL INTERSECT con l'aiuto di esempi.

Considera le seguenti tabelle insieme ai record forniti.

Tabella 1:Studente

ID_STUDENTE 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 VIGNETO 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

Tabella 2:Stud

ID_STUDENTE 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 VIGNETO 85 90 100 275

Esempio 1: Eseguire una query per eseguire l'operazione INTERSECT tra la tabella Student e la tabella Stud.

SELECT * FROM STUDENT INTERSECT SELECT * FROM STUD;

Nella query precedente, abbiamo utilizzato due query SELECT. La prima query SELECT recupera i dati dalla tabella Student. Esegue l'operazione INTERSECT con i dati recuperati dalla seconda query SELECT che recupera i dati dalla tabella Stud. Vengono selezionati solo record simili tra queste due tabelle.

L'output della query precedente è:

ID_STUDENTE 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 VIGNETO 85 90 100 275
9 SANKET 86 78 65 229
101 SNEHA 85 88 100 273
103 VISHAL 75 88 96 259

Vengono visualizzati solo i record comuni tra la tabella Studenti e le tabelle Stud.

Esempio 2: Eseguire una query per eseguire l'operazione INTERSECT tra la tabella Student e la tabella Stud ma visualizzare solo i record Student dalla tabella Stud in cui i voti matematici sono pari a 100.

SELECT * FROM STUDENT INTERSECT SELECT * FROM STUD WHERE MATHS_MARKS = 100;

L'output della query precedente è:

ID_STUDENTE STUDENT_NAME PHYSICS_MARKS CHEMISTRY_MARKS MATHS_MARKS TOTAL_MARKS
7 SONAM 98 89 100 287
8 VIGNETO 85 90 100 275
101 SNEHA 85 88 100 273

Vengono visualizzati solo i record degli studenti i cui voti matematici sono pari a 100 dalla tabella Stud e sono comuni tra la tabella Student e la tabella Stud.

Esempio 3: Eseguire una query per eseguire l'operazione INTERSECT tra la tabella Student e la tabella Stud, ma visualizzare solo i record Student dalla tabella Student in cui i voti di chimica sono maggiori di 80.

SELECT * FROM STUDENT WHERE CHEMISTRY_MARKS > 80 INTERSECT SELECT * FROM STUD;

L'output della query precedente è:

ID_STUDENTE STUDENT_NAME PHYSICS_MARKS CHEMISTRY_MARKS MATHS_MARKS TOTAL_MARKS
6 ANKITA 95 85 96 276
7 SONAM 98 89 100 287
8 VIGNETO 85 90 100 275
101 SNEHA 85 88 100 273
103 VISHAL 75 88 96 259

Vengono visualizzati solo i record degli studenti i cui voti di chimica sono maggiori di 80 dalla tabella Studente e sono comuni sia tra la tabella Studente che la tabella Stud.

Esempio 4: Eseguire una query per eseguire l'operazione INTERSECT tra la tabella Studente e la tabella Stud e visualizzare solo i record Studente in cui i voti di fisica sono maggiori di 75 dalla Tabella Studente e selezionare le seconde query che visualizzano solo i record Studente in cui i voti di matematica sono maggiori di 90 dalla tabella Studente Stallone.

SELECT * FROM STUDENT WHERE PHYSICS_MARKS > 75 INTERSECT SELECT * FROM STUD WHERE MATHS_MARKS > 90;

L'output della query precedente è:

ID_STUDENTE STUDENT_NAME PHYSICS_MARKS CHEMISTRY_MARKS MATHS_MARKS TOTAL_MARKS
6 ANKITA 95 85 96 276
7 SONAM 98 89 100 287
8 VIGNETO 85 90 100 275
101 SNEHA 85 88 100 273

Vengono visualizzati solo i record degli studenti i cui voti di fisica sono maggiori di 75 dalla tabella Studente e i voti di matematica sono maggiori di 90 dalla tabella Stud e sono comuni sia tra la tabella Studente che la tabella Stud.