logo

Comment utiliser IN dans SQL

Dans cet article SQL, vous apprendrez à utiliser le mot-clé IN dans les requêtes de la base de données SQL.

Qu’est-ce que le mot-clé IN en SQL ?

Le DANS est un opérateur logique dans le langage de requête structuré qui permet aux utilisateurs de la base de données de définir plusieurs valeurs dans la clause WHERE.

La clause WHERE avec l'opérateur IN affiche les enregistrements du résultat qui correspondent à l'ensemble de valeurs donné. On peut également spécifier la sous-requête entre parenthèses de l'opérateur IN.

Nous pouvons utiliser l'opérateur IN avec les requêtes INSERT, SELECT, UPDATE et DELETE dans la base de données SQL.

10 sur 10

L'opérateur IN dans SQL remplace le processus de plusieurs conditions OR dans les requêtes.

Syntaxe de l'opérateur IN :

 SELECT Column_Name_1, Column_Name_2, Column_Name_3, ......, Column_Name_N FROM Table_Name WHERE Column_Name IN (Value_1, Value_2, Value_3, ......., Value_N); 

Si vous souhaitez utiliser l'opérateur IN dans les instructions SQL, vous devez suivre les étapes ci-dessous dans le même ordre :

  1. Créez une base de données en SQL.
  2. Créez la nouvelle table SQL.
  3. Insérez les données dans le tableau.
  4. Afficher les données insérées.
  5. Utilisez l'opérateur SQL IN pour afficher les données de la table.

Maintenant, nous allons expliquer brièvement chaque étape une par une avec le meilleur exemple SQL :

Étape 1 : Créer une nouvelle base de données simple

La première étape consiste à créer une nouvelle base de données en langage de requête structuré.

L'instruction CREATE suivante crée le nouveau Collège_mécanique Base de données sur serveur SQL :

 CREATE Database Mechanical_College; 

Étape 2 : Créer un nouveau tableau

Maintenant, utilisez la syntaxe SQL suivante qui aide à créer la nouvelle table dans la base de données :

 CREATE TABLE table_name ( 1st_Column data type (character_size of 1st Column), 2nd_Column data type (character_size of the 2nd column ), 3rd_Column data type (character_size of the 3rd column), ... 
 Nth_Column data type (character_size of the Nth column) ); 

L'instruction CREATE suivante crée le Faculté_Info tableau dans le Collège_mécanique Base de données:

 CREATE TABLE Faculty_Info ( Faculty_ID INT NOT NULL PRIMARY KEY, Faculty_First_Name VARCHAR (100), Faculty_Last_Name VARCHAR (100), Faculty_Dept_Id INT NOT NULL, Faculty_Joining_DateDATE, Faculty_City Varchar (80), Faculty_Salary INT ); 

Étape 3 : Insérez les données dans le tableau

Les requêtes INSERT suivantes insèrent les enregistrements des Facultés dans la table Faculté_Info :

ajouter une chaîne java
 INSERT INTO Faculty_Info (Faculty_ID, Faculty_First_Name, Faculty_Last_NameFaculty_Dept_Id, Faculty_Joining_Date, Faculty_City, Faculty_Salary) VALUES (1001, Arush, Sharma, 4001, 2020-01-02, Delhi, 20000); INSERT INTO Faculty_Info (Faculty_ID, Faculty_First_Name, Faculty_Last_NameFaculty_Dept_Id, Faculty_Joining_Date, Faculty_City, Faculty_Salary) VALUES (1002, Bulbul, Roy, 4002, 2019-12-31, Delhi, 38000 ); INSERT INTO Faculty_Info (Faculty_ID, Faculty_First_Name, Faculty_Last_NameFaculty_Dept_Id, Faculty_Joining_Date, Faculty_City, Faculty_Salary) VALUES (1004, Saurabh, Sharma, 4001, 2020-10-10, Mumbai, 45000); INSERT INTO Faculty_Info (Faculty_ID, Faculty_First_Name, Faculty_Last_NameFaculty_Dept_Id, Faculty_Joining_Date, Faculty_City, Faculty_Salary) VALUES (1005, Shivani, Singhania, 4001, 2019-07-15, Kolkata, 42000); INSERT INTO Faculty_Info (Faculty_ID, Faculty_First_Name, Faculty_Last_NameFaculty_Dept_Id, Faculty_Joining_Date, Faculty_City, Faculty_Salary) VALUES (1006, Avinash, Sharma, 4002, 2019-11-11, Delhi, 28000); INSERT INTO Faculty_Info (Faculty_ID, Faculty_First_Name, Faculty_Last_NameFaculty_Dept_Id, Faculty_Joining_Date, Faculty_City, Faculty_Salary)VALUES (1007, Shyam, Besas, 4003, 2021-06-21, Lucknow, 35000); 

Étape 4 : Afficher les données insérées

L'instruction SELECT suivante affiche les données de la table Faculté_Info :

 SELECT * FROM Faculty_Info; 

Faculté_Id Faculté_Premier_Nom Nom_famille_de la faculté Faculté_Dept_Id Faculté_Joining_Date Faculté_Ville Faculté_Salaire
1001 ours Sharma 4001 2020-01-02 Delhi 20000
1002 Bulbul Roy 4002 2019-12-31 Delhi 38000
1004 Saurabh Roy 4001 2020-10-10 Bombay 45000
1005 Shivani Singhanie 4001 2019-07-15 Calcutta 42000
1006 Avinash Sharma 4002 2019-11-11 Delhi 28000
1007 Shyam Vous embrassez 4003 2021-06-21 Lucknow 35000

Étape 5 : Utilisez l'opérateur IN pour afficher les données de la table Faculté_Info de différentes manières

La requête suivante utilise des valeurs numériques avec l'opérateur IN :

 SELECT Faculty_Id, Faculty_First_Name, Faculty_Dept_Id, Faculty_Joining_Date, Faculty_Salary FROM Faculty_Info WHERE Faculty_Salary IN ( 38000, 42000, 45000, 35000); 

Cette requête affiche uniquement l'enregistrement des facultés dont le salaire est transmis dans l'opérateur IN de la clause WHERE.

Sortir:

Faculté_Id Faculté_Premier_Nom Faculté_Dept_Id Faculté_Joining_Date Faculté_Salaire
1002 Bulbul 4002 2019-12-31 38000
1004 Saurabh 4001 2020-10-10 45000
1005 Shivani 4001 2019-07-15 42000
1007 Shyam 4003 2021-06-21 35000

La requête suivante utilise des valeurs de texte ou de caractères avec l'opérateur logique IN :

 SELECT Faculty_Id, Faculty_First_Name, Faculty_Joining_Date, Faculty_City FROM Faculty_Info WHERE Faculty_City IN ( Mumbai, Kolkata, Lucknow); 

Cette requête affiche uniquement l'enregistrement des facultés dont la ville est incluse entre les parenthèses de l'opérateur IN dans la clause WHERE.

Sortir:

Faculté_Id Faculté_Premier_Nom Faculté_Joining_Date Faculté_Ville
1004 Saurabh 2020-10-10 Bombay
1005 Shivani 2019-07-15 Calcutta
1007 Shyam 2021-06-21 Lucknow

La requête suivante utilise le format DATE avec l'opérateur logique IN :

 SELECT Faculty_Id, Faculty_First_Name, Faculty_Dept_ID Faculty_Joining_Date, Faculty_Salary FROM Faculty_Info WHERE Faculty_Joining_Date IN (2020-01-02, 2021-06-21, 2020-10-10, 2019-07-15); 

Cette requête affiche uniquement les enregistrements des facultés dont la date d'adhésion est transmise dans l'opérateur IN de la clause WHERE.

Sortir:

Faculté_Id Faculté_Premier_Nom Faculté_Dept_Id Faculté_Joining_Date Faculté_Salaire
1001 ours 4001 2020-01-02 20000
1004 Saurabh 4001 2020-10-10 45000
1005 Shivani 4001 2019-07-15 42000
1007 Shyam 4003 2021-06-21 35000

La requête suivante utilise la commande SQL UPDATE avec l'opérateur logique IN :

 UPDATE Faculty_Info SET Faculty_Salary = 50000 WHERE Faculty_Dept_ID IN (4002, 4003); 

Cette requête met à jour le salaire des facultés dont Dept_Id est transmis dans l'opérateur IN de la clause WHERE.

Pour vérifier le résultat de la requête ci-dessus, tapez la requête SELECT suivante en SQL :

 SELECT * FROM Faculty_Info; 
Faculté_Id Faculté_Premier_Nom Nom_famille_de la faculté Faculté_Dept_Id Faculté_Joining_Date Faculté_Ville Faculté_Salaire
1001 ours Sharma 4001 2020-01-02 Delhi 20000
1002 Bulbul Roy 4002 2019-12-31 Delhi 50000
1004 Saurabh Roy 4001 2020-10-10 Bombay 45000
1005 Shivani Singhanie 4001 2019-07-15 Calcutta 42000
1006 Avinash Sharma 4002 2019-11-11 Delhi 50000
1007 Shyam Vous embrassez 4003 2021-06-21 Lucknow 50000

Opérateur SQL IN avec sous-requête

En langage de requête structuré, nous pouvons également utiliser la sous-requête avec l'opérateur logique IN.

La syntaxe de l'opérateur IN avec sous-requête est donnée ci-dessous :

 SELECT Column_Name_1, Column_Name_2, Column_Name_3, ......, Column_Name_N FROM Table_Name WHERE Column_Name IN (Subquery); 

Si vous souhaitez comprendre l'opérateur IN avec sous-requête, vous devez créer les deux tables différentes dans le langage de requête structuré à l'aide de l'instruction CREATE.

La requête suivante crée la table Faculté_Info dans la base de données :

qu'est-ce que const en java
 CREATE TABLE Faculty_Info ( Faculty_ID INT NOT NULL PRIMARY KEY, Faculty_First_Name VARCHAR (100), Faculty_Last_Name VARCHAR (100), Faculty_Dept_Id INT NOT NULL, Faculty_Address Varchar (80), Faculty_City Varchar (80), Faculty_Salary INT ); 

La requête suivante crée le Département_Info tableau dans la base de données :

 CREATE TABLE Department_Info ( Dept_Id INT NOT NULL, Dept_Name Varchar(100), Head_Id INT ); 

Les requêtes INSERT suivantes insèrent les enregistrements des Facultés dans la table Faculté_Info :

 INSERT INTO Faculty_Info (Faculty_ID, Faculty_First_Name, Faculty_Last_NameFaculty_Dept_Id, Faculty_Address, Faculty_City, Faculty_Salary) VALUES (1001, Arush, Sharma, 4001, 22 street, New Delhi, 20000); INSERT INTO Faculty_Info (Faculty_ID, Faculty_First_Name, Faculty_Last_NameFaculty_Dept_Id, Faculty_Address, Faculty_City, Faculty_Salary) VALUES (1002, Bulbul, Roy, 4002, 120 street, New Delhi, 38000 ); INSERT INTO Faculty_Info (Faculty_ID, Faculty_First_Name, Faculty_Last_NameFaculty_Dept_Id, Faculty_Address, Faculty_City, Faculty_Salary) VALUES (1004, Saurabh, Sharma, 4001, 221 street, Mumbai, 45000); INSERT INTO Faculty_Info (Faculty_ID, Faculty_First_Name, Faculty_Last_NameFaculty_Dept_Id, Faculty_Address, Faculty_City, Faculty_Salary) VALUES (1005, Shivani, Singhania, 4001, 501 street, Kolkata, 42000); 

Les requêtes INSERT suivantes insèrent les enregistrements des départements dans la table Department_Info :

 INSERT INTO Department_Info (Dept_ID, Dept_Name, Head_Id) VALUES ( 4001, Arun, 1005); INSERT INTO Department_Info (Dept_ID, Dept_Name, Head_Id) VALUES ( 4002, Zayant, 1009); INSERT INTO Department_Info (Dept_ID, Dept_Name, Head_Id) VALUES ( 4003, Manish, 1007); 

L'instruction SELECT suivante affiche les données de la table Faculté_Info :

 SELECT * FROM Faculty_Info; 

Faculté_Id Faculté_Premier_Nom Nom_famille_de la faculté Faculté_Dept_Id Adresse_Faculté Faculté_Ville Faculté_Salaire
1001 ours Sharma 4001 22 rue New Delhi 20000
1002 Bulbul Roy 4002 120 rue New Delhi 38000
1004 Saurabh Roy 4001 221 rue Bombay 45000
1005 Shivani Singhanie 4001 501 rue Calcutta 42000
1006 Avinash Sharma 4002 12 rue Delhi 28000
1007 Shyam Vous embrassez 4003 202 rue Lucknow 35000

La requête suivante affiche les enregistrements du département de la table Department_Info :

 SELECT * FROM Department_Info; 
Comment utiliser IN dans SQL

La requête suivante utilise l'opérateur IN avec une sous-requête :

 SELECT * FROM Faculty_Info WHERE Faculty_Dept_Id IN ( Select Dept_Id FROM Department_Info WHERE Head_Id >= 1007); 

Cette requête affiche l'enregistrement des facultés dont le Dept_ID de la table Faculté_Info correspond au Dept_Id de la table Department_Info.

Sortir:

Faculté_Id Faculté_Premier_Nom Nom_famille_de la faculté Faculté_Dept_Id Adresse_Faculté Faculté_Ville Faculté_Salaire
1002 Bulbul Roy 4002 120 rue New Delhi 38000
1006 Avinash Sharma 4002 12 rue Delhi 28000
1007 Shyam Vous embrassez 4003 202 rue Lucknow 35000

Qu'est-ce qui n'est PAS IN en SQL ?

Le NOT IN est un autre opérateur du langage de requête structuré, qui est juste en face de l'opérateur SQL IN. Il permet d'accéder à ces valeurs depuis le tableau, qui ne passe pas entre parenthèses de l'opérateur IN.

L'opérateur NOT IN peut être utilisé dans les requêtes SQL INSERT, UPDATE, SELECT et DELETE.

Syntaxe de l'opérateur NOT IN :

 SELECT Column_Name_1, Column_Name_2, Column_Name_3, ......, Column_Name_N FROM Table_Name WHERE Column_Name NOT IN (Value_1, Value_2, Value_3, ......., Value_N); 

Si vous souhaitez utiliser l'opérateur NOT IN dans les instructions SQL, vous devez suivre les étapes indiquées dans le même ordre :

  1. Créez une base de données dans le système SQL.
  2. Créez la nouvelle table dans la base de données.
  3. Insérez les données dans le tableau
  4. Afficher les données insérées
  5. Utilisez l'opérateur NOT IN pour afficher les données.

Maintenant, nous allons expliquer brièvement chaque étape une par une avec le meilleur exemple SQL :

Étape 1 : Créer la nouvelle base de données simple

chaîne en C++

La requête suivante crée le nouveau Industrie_Civile Base de données sur serveur SQL :

 CREATE Database Industry; 

Étape 2 : Créer la nouvelle table

La requête suivante crée le Travailleur_Info tableau dans le Industrie_Civile Base de données:

 CREATE TABLE Worker_Info ( Worker_ID INT NOT NULL PRIMARY KEY, Worker_Name VARCHAR (100), Worker_Gender Varchar(20), Worker_Age INT NOT NULL DEFAULT 18, Worker_Address Varchar (80), Worker_Salary INT NOT NULL ); 

Étape 3 : Insérez les valeurs

Les requêtes INSERT suivantes insèrent les enregistrements des travailleurs dans la table Worker_Info :

 INSERT INTO Worker_Info (Worker_ID, Worker_Name, Worker_Gender, Worker_Age, Worker_Address, Worker_Salary) VALUES (1001, Arush, Male, Agra, 35000); INSERT INTO Worker_Info (Worker_ID, Worker_Name, Worker_Gender, Worker_Age, Worker_Address, Worker_Salary) VALUES (1002, Bulbul, Female, Lucknow, 42000); INSERT INTO Worker_Info (Worker_ID, Worker_Name, Worker_Gender, Worker_Age, Worker_Address, Worker_Salary) VALUES (1004, Saurabh, Male, 20, Lucknow, 45000); INSERT INTO Worker_Info (Worker_ID, Worker_Name, Worker_Gender, Worker_Age, Worker_Address, Worker_Salary) VALUES (1005, Shivani, Female, Agra, 28000); INSERT INTO Worker_Info (Worker_ID, Worker_Name, Worker_Gender, Worker_Age, Worker_Address, Worker_Salary) VALUES (1006, Avinash, Male, 22, Delhi, 38000); INSERT INTO Worker_Info (Worker_ID, Worker_Name, Worker_Gender, Worker_Age, Worker_Address, Worker_Salary) VALUES (1007, Shyam, Male, Banglore, 20000); 

Étape 4 : Afficher les données de la table

La requête suivante affiche les données de la table Worker_Info.

tableau de retour Java
 SELECT * FROM Worker_Info; 

ID_travailleur Nom_travailleur Travailleur_Gender Âge_travailleur Adresse_travailleur Travailleur_Salaire
1001 ours Mâle 18 Āgrā 35000
1002 Bulbul Femelle 18 Lucknow 42000
1004 Saurabh Mâle vingt Lucknow 45000
1005 Shivani Femelle 18 Āgrā 28000
1006 Avinash Mâle 22 Delhi 38000
1007 Shyam Mâle 18 Bangalore 20000

Étape 4 : Utilisez l'opérateur NOT IN

La requête suivante utilise l'opérateur NOT IN avec des données numériques :

 SELECT * FROM Worker_Info WHERE Worker_salary NOT IN (35000, 28000, 38000); 

Cette requête SELECT affiche tous les travailleurs dans la sortie dont le salaire n'est pas transmis dans l'opérateur NOT IN.

Le résultat de l'instruction ci-dessus est présenté dans le tableau suivant :

ID_travailleur Nom_travailleur Travailleur_Gender Âge_travailleur Adresse_travailleur Travailleur_Salaire
1002 Bulbul Femelle 18 Lucknow 42000
1004 Saurabh Mâle vingt Lucknow 45000
1007 Shyam Mâle 18 Bangalore 20000

La requête suivante utilise l'opérateur logique NOT IN avec des valeurs de caractère ou de texte :

 SELECT * FROM Worker_Info WHERE Worker_Address NOT IN (Lucknow, Delhi); 

Cette requête affiche l'enregistrement de tous les travailleurs dont l'adresse n'est pas transmise dans l'opérateur NOT IN.

Sortir:

ID_travailleur Nom_travailleur Travailleur_Gender Âge_travailleur Adresse_travailleur Travailleur_Salaire
1001 ours Mâle 18 Āgrā 35000
1005 Shivani Femelle 18 Āgrā 28000
1007 Shyam Mâle 18 Bangalore 20000