logo

IN gebruiken in SQL

In dit SQL-artikel leert u hoe u het IN-trefwoord kunt gebruiken in de query's van de SQL-database.

Wat is het IN-sleutelwoord in SQL?

De IN is een logische operator in de Structured Query Language waarmee databasegebruikers meer dan één waarde in de WHERE-clausule kunnen definiëren.

De WHERE-clausule met IN-operator toont de records in het resultaat die overeenkomen met de gegeven set waarden. We kunnen de subquery ook tussen haakjes van de IN-operator specificeren.

We kunnen de IN-operator gebruiken met de INSERT-, SELECT-, UPDATE- en DELETE-query's in de SQL-database.

De IN-operator in SQL vervangt het proces van meerdere OR-voorwaarden in query's.

Syntaxis van IN-operator:

 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); 

Als u de IN-operator in de SQL-instructies wilt gebruiken, moet u de onderstaande stappen in dezelfde volgorde volgen:

  1. Maak een database in SQL.
  2. Maak de nieuwe SQL-tabel.
  3. Voer de gegevens in de tabel in.
  4. Bekijk de ingevoegde gegevens.
  5. Gebruik de SQL IN-operator om de gegevens van de tabel weer te geven.

Nu gaan we elke stap één voor één in het kort uitleggen met het beste SQL-voorbeeld:

Stap 1: Maak een eenvoudige nieuwe database

De eerste stap is het maken van een nieuwe database in Structured Query Language.

Met de volgende CREATE-instructie wordt het new Mechanisch_College Database in SQL-server:

 CREATE Database Mechanical_College; 

Stap 2: Maak een nieuwe tabel

Gebruik nu de volgende SQL-syntaxis die helpt bij het maken van de nieuwe tabel in de database:

 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) ); 

Met de volgende CREATE-instructie wordt de Faculteit_Info tafel in de Mechanisch_College Database:

 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 ); 

Stap 3: Voeg de gegevens in de tabel in

Met de volgende INSERT-query's worden de records van faculteiten in de tabel Faculty_Info ingevoegd:

 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); 

Stap 4: Bekijk de ingevoegde gegevens

De volgende SELECT-instructie geeft de gegevens van de tabel Faculty_Info weer:

 SELECT * FROM Faculty_Info; 

Faculteit_Id Faculteit_Voornaam Faculteit_Achternaam Faculteit_Afd._Id Faculteit_lidmaatschapsdatum Faculteit_Stad Faculteit_Salaris
1001 beer Sharma 4001 02-01-2020 Delhi 20000
1002 Bulbul Roy 4002 31-12-2019 Delhi 38000
1004 Saurabh Roy 4001 2020-10-10 Mumbai 45000
1005 Shivani Singhania 4001 15-07-2019 Calcutta 42000
1006 Avinash Sharma 4002 11-11-2019 Delhi 28000
1007 Shyam Jij kust 4003 21-06-2021 Lucknow 35000

Stap 5: Gebruik de IN Operator om de gegevens van de Faculty_Info tabel op verschillende manieren te bekijken

De volgende query gebruikt numerieke waarden met de IN-operator:

 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); 

Deze query toont alleen de records van de faculteiten waarvan het salaris is doorgegeven in de IN-operator van WHERE-clausule.

Uitgang:

Faculteit_Id Faculteit_Voornaam Faculteit_Afd._Id Faculteit_lidmaatschapsdatum Faculteit_Salaris
1002 Bulbul 4002 31-12-2019 38000
1004 Saurabh 4001 2020-10-10 45000
1005 Shivani 4001 15-07-2019 42000
1007 Shyam 4003 21-06-2021 35000

De volgende query gebruikt tekst- of tekenwaarden met de logische operator IN:

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

Deze query toont alleen de records van de faculteiten waarvan de stad tussen haakjes staat van de IN-operator in de WHERE-clausule.

java if-instructie

Uitgang:

in tekenreeks in Java
Faculteit_Id Faculteit_Voornaam Faculteit_lidmaatschapsdatum Faculteit_Stad
1004 Saurabh 2020-10-10 Mumbai
1005 Shivani 15-07-2019 Calcutta
1007 Shyam 21-06-2021 Lucknow

De volgende query gebruikt het DATE-formaat met de logische operator 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); 

Deze query toont alleen de records van faculteiten waarvan de toetredingsdatum is doorgegeven in de IN-operator van de WHERE-clausule.

Uitgang:

Faculteit_Id Faculteit_Voornaam Faculteit_Afd._Id Faculteit_lidmaatschapsdatum Faculteit_Salaris
1001 beer 4001 02-01-2020 20000
1004 Saurabh 4001 2020-10-10 45000
1005 Shivani 4001 15-07-2019 42000
1007 Shyam 4003 21-06-2021 35000

De volgende query gebruikt de SQL UPDATE-opdracht met de logische operator IN:

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

Met deze query wordt het salaris bijgewerkt van de faculteiten waarvan Dept_Id wordt doorgegeven in de IN-operator van de WHERE-clausule.

Om het resultaat van de bovenstaande query te controleren, typt u de volgende SELECT-query in SQL:

 SELECT * FROM Faculty_Info; 
Faculteit_Id Faculteit_Voornaam Faculteit_Achternaam Faculteit_Afd._Id Faculteit_lidmaatschapsdatum Faculteit_Stad Faculteit_Salaris
1001 beer Sharma 4001 02-01-2020 Delhi 20000
1002 Bulbul Roy 4002 31-12-2019 Delhi 50000
1004 Saurabh Roy 4001 2020-10-10 Mumbai 45000
1005 Shivani Singhania 4001 15-07-2019 Calcutta 42000
1006 Avinash Sharma 4002 11-11-2019 Delhi 50000
1007 Shyam Jij kust 4003 21-06-2021 Lucknow 50000

SQL IN-operator met subquery

In Structured Query Language kunnen we de subquery ook gebruiken met de logische operator IN.

De syntaxis van de IN-operator met subquery wordt hieronder gegeven:

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

Als u de IN-operator met subquery wilt begrijpen, moet u de twee verschillende tabellen in de Structured Query Language maken met behulp van de CREATE-instructie.

Met de volgende query wordt de tabel Faculty_Info in de database gemaakt:

 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 ); 

Met de volgende query wordt het Afdeling_Info tabel in de database:

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

Met de volgende INSERT-query's worden de records van faculteiten in de tabel Faculty_Info ingevoegd:

 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); 

Met de volgende INSERT-query's worden de records van afdelingen ingevoegd in de tabel 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); 

De volgende SELECT-instructie geeft de gegevens van de tabel Faculty_Info weer:

 SELECT * FROM Faculty_Info; 

Faculteit_Id Faculteit_Voornaam Faculteit_Achternaam Faculteit_Afd._Id Faculteit_Adres Faculteit_Stad Faculteit_Salaris
1001 beer Sharma 4001 22 Straat New Delhi 20000
1002 Bulbul Roy 4002 Straat 120 New Delhi 38000
1004 Saurabh Roy 4001 Straat 221 Mumbai 45000
1005 Shivani Singhania 4001 Straat 501 Calcutta 42000
1006 Avinash Sharma 4002 12 Straat Delhi 28000
1007 Shyam Jij kust 4003 Straat 202 Lucknow 35000

De volgende query toont de records van de afdeling uit de tabel Department_Info:

 SELECT * FROM Department_Info; 
IN gebruiken in SQL

De volgende query gebruikt de IN-operator met een subquery:

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

Met deze query worden de records weergegeven van de faculteiten waarvan de tabel Dept_ID uit de tabel Faculty_Info overeenkomt met de tabel Dept_Id uit de tabel Department_Info.

Uitgang:

Faculteit_Id Faculteit_Voornaam Faculteit_Achternaam Faculteit_Afd._Id Faculteit_Adres Faculteit_Stad Faculteit_Salaris
1002 Bulbul Roy 4002 Straat 120 New Delhi 38000
1006 Avinash Sharma 4002 12 Straat Delhi 28000
1007 Shyam Jij kust 4003 Straat 202 Lucknow 35000

Wat zit er NIET IN in SQL?

De NOT IN is een andere operator in Structured Query Language, die precies het tegenovergestelde is van de SQL IN-operator. Hiermee kunt u toegang krijgen tot die waarden uit de tabel, die niet tussen haakjes van de IN-operator staan.

De NOT IN-operator kan worden gebruikt in de INSERT-, UPDATE-, SELECT- en DELETE SQL-query's.

Syntaxis van NOT IN-operator:

 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); 

Als u de NOT IN-operator in de SQL-instructies wilt gebruiken, moet u de gegeven stappen in dezelfde volgorde volgen:

  1. Maak een database in het SQL-systeem.
  2. Maak de nieuwe tabel in de database.
  3. Voer de gegevens in de tabel in
  4. Bekijk de ingevoegde gegevens
  5. Gebruik de NOT IN-operator om de gegevens te bekijken.

Nu gaan we elke stap één voor één in het kort uitleggen met het beste SQL-voorbeeld:

Stap 1: Maak de eenvoudige nieuwe database

Met de volgende query wordt het new Civiele_Industrie Database in SQL-server:

 CREATE Database Industry; 

Stap 2: Maak de nieuwe tabel

Met de volgende query wordt het Werknemer_info tafel in de Civiele_Industrie Database:

 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 ); 

Stap 3: Voer de waarden in

Met de volgende INSERT-query's worden de records van werknemers in de tabel Worker_Info ingevoegd:

 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); 

Stap 4: Bekijk de gegevens van de tabel

Met de volgende query worden de gegevens van de tabel Worker_Info weergegeven.

 SELECT * FROM Worker_Info; 

Werknemer_ID Werknemernaam Werknemer_Gender Werknemer_Leeftijd Werknemer_adres Werknemer_Salaris
1001 beer Mannelijk 18 Agra 35000
1002 Bulbul Vrouwelijk 18 Lucknow 42000
1004 Saurabh Mannelijk twintig Lucknow 45000
1005 Shivani Vrouwelijk 18 Agra 28000
1006 Avinash Mannelijk 22 Delhi 38000
1007 Shyam Mannelijk 18 Bangalore 20000

Stap 4: Gebruik de NOT IN-operator

De volgende query gebruikt de NOT IN-operator met numerieke gegevens:

vind in kaart c++
 SELECT * FROM Worker_Info WHERE Worker_salary NOT IN (35000, 28000, 38000); 

Deze SELECT-query toont al die werknemers in de uitvoer waarvan het salaris niet is doorgegeven in de NOT IN-operator.

Het resultaat van de bovenstaande verklaring wordt weergegeven in de volgende tabel:

Werknemer_ID Werknemernaam Werknemer_Gender Werknemer_Leeftijd Werknemer_adres Werknemer_Salaris
1002 Bulbul Vrouwelijk 18 Lucknow 42000
1004 Saurabh Mannelijk twintig Lucknow 45000
1007 Shyam Mannelijk 18 Bangalore 20000

De volgende query gebruikt de logische operator NOT IN met teken- of tekstwaarden:

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

Deze query toont het record van al die werknemers waarvan het adres niet is doorgegeven in de NOT IN-operator.

Uitgang:

Werknemer_ID Werknemernaam Werknemer_Gender Werknemer_Leeftijd Werknemer_adres Werknemer_Salaris
1001 beer Mannelijk 18 Agra 35000
1005 Shivani Vrouwelijk 18 Agra 28000
1007 Shyam Mannelijk 18 Bangalore 20000