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:
- Maak een database in SQL.
- Maak de nieuwe SQL-tabel.
- Voer de gegevens in de tabel in.
- Bekijk de ingevoegde gegevens.
- 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;
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:
- Maak een database in het SQL-systeem.
- Maak de nieuwe tabel in de database.
- Voer de gegevens in de tabel in
- Bekijk de ingevoegde gegevens
- 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 |