Database
 sql >> Base de données >  >> RDS >> Database

INTERSECTION SQL

L'opérateur d'intersection SQL est utilisé pour combiner deux ou plusieurs instructions SELECT, mais il n'affiche que les données similaires à l'instruction SELECT.

La syntaxe de l'opération INTERSECT :

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

Les règles à suivre en utilisant l'opérateur INTERSECT sont les suivantes :

  1. Le nombre de colonnes et l'ordre des colonnes doivent être identiques.
  2. Le type de données doit être compatible.

Comprenons le concept de SQL INTERSECT à l'aide d'exemples.

Considérez les tableaux suivants avec les enregistrements donnés.

Tableau 1 :Élève

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

Tableau 2 :Goujon

STUDENT_ID STUDENT_NAME PHYSICS_MARKS CHEMISTRY_MARKS MATHS_MARKS TOTAL_MARKS
4 NIKHIL 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

Exemple 1 : Exécutez une requête pour effectuer une opération INTERSECT entre la table Student et la table Stud.

SELECT * FROM STUDENT INTERSECT SELECT * FROM STUD;

Dans la requête ci-dessus, nous avons utilisé deux requêtes SELECT. La requête First SELECT récupère les données de la table Student. Il effectue une opération INTERSECT avec les données récupérées par la deuxième requête SELECT qui récupère les données de la table Stud. Seuls les enregistrements similaires entre ces deux tables sont sélectionnés.

Le résultat de la requête ci-dessus est :

STUDENT_ID STUDENT_NAME PHYSICS_MARKS CHEMISTRY_MARKS MATHS_MARKS TOTAL_MARKS
4 NIKHIL 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

Seuls les enregistrements communs entre la table Student et les tables Stud sont affichés.

Exemple 2 : Exécutez une requête pour effectuer une opération INTERSECT entre la table Student et la table Stud, mais affichez uniquement les enregistrements Student de la table Stud où les notes mathématiques sont égales à 100.

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

Le résultat de la requête ci-dessus est :

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

Seuls les enregistrements des étudiants sont affichés dont les notes en mathématiques sont égales à 100 dans la table Stud et sont communes aux tables Student et Stud.

Exemple 3 : Exécutez une requête pour effectuer une opération INTERSECT entre la table Student et la table Stud, mais affichez uniquement les enregistrements Student de la table Student où les notes de chimie sont supérieures à 80.

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

Le résultat de la requête ci-dessus est :

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

Seuls les enregistrements des étudiants sont affichés dont les notes en chimie sont supérieures à 80 dans la table des étudiants et sont communes aux tables des étudiants et des étudiants.

Exemple 4 : Exécutez une requête pour effectuer une opération INTERSECT entre la table Student et la table Stud et affichez uniquement les enregistrements Student dont les notes en physique sont supérieures à 75 dans la table Student, puis sélectionnez les requêtes qui affichent uniquement les enregistrements Student dont les notes en mathématiques sont supérieures à 90 dans la table Goujon.

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

Le résultat de la requête ci-dessus est :

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

Seuls les enregistrements des étudiants sont affichés dont les notes en physique sont supérieures à 75 dans la table des étudiants et les notes en mathématiques sont supérieures à 90 dans la table des goujons et sont communes aux tables des étudiants et des goujons.