logo

Hur man använder IN i SQL

I den här SQL-artikeln kommer du att lära dig hur du använder nyckelordet IN i SQL-databasens frågor.

Vad är IN-nyckelord i SQL?

De I är en logisk operator i Structured Query Language som tillåter databasanvändare att definiera mer än ett värde i WHERE-satsen.

nätverksoperativsystem

WHERE-satsen med IN-operatorn visar de poster i resultatet som matchas med den givna uppsättningen värden. Vi kan också specificera underfrågan inom parentes för IN-operatorn.

Vi kan använda IN-operatorn med frågorna INSERT, SELECT, UPDATE och DELETE i SQL-databasen.

IN-operatorn i SQL ersätter processen med flera ELLER-villkor i frågor.

Syntax för 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); 

Om du vill använda IN-operatorn i SQL-satserna måste du följa stegen nedan i samma ordning:

  1. Skapa en databas i SQL.
  2. Skapa den nya SQL-tabellen.
  3. Infoga data i tabellen.
  4. Visa infogade data.
  5. Använd SQL IN-operatorn för att visa tabellens data.

Nu ska vi förklara varje steg ett efter ett i korthet med det bästa SQL-exemplet:

Steg 1: Skapa en enkel ny databas

Det första steget är att skapa en ny databas i Structured Query Language.

Följande CREATE-sats skapar den nya Mekanisk_Högskola Databas i SQL-server:

 CREATE Database Mechanical_College; 

Steg 2: Skapa en ny tabell

Använd nu följande SQL-syntax som hjälper till att skapa den nya tabellen i databasen:

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

Följande CREATE-sats skapar Fakultet_Info bordet i Mekanisk_Högskola Databas:

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

Steg 3: Infoga data i tabellen

Följande INSERT-frågor infogar fakulteternas poster i tabellen Faculty_Info:

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

Steg 4: Visa infogade data

Följande SELECT-sats visar data i tabellen Faculty_Info:

 SELECT * FROM Faculty_Info; 

Faculty_Id Faculty_First_Name Faculty_Last_Name Faculty_Dept_Id Faculty_Joining_Date Fakultet_Stad Fakultet_Lön
1001 Björn Sharma 4001 2020-01-02 Delhi 20 000
1002 Bulbul Roy 4002 2019-12-31 Delhi 38 000
1004 Saurabh Roy 4001 2020-10-10 Mumbai 45 000
1005 Shivani Singhania 4001 2019-07-15 Kolkata 42 000
1006 Avinash Sharma 4002 2019-11-11 Delhi 28 000
1007 Shyam Du kysser 4003 2021-06-21 Lyckligtvis 35 000

Steg 5: Använd IN-operatören för att se data i tabellen Faculty_Info på olika sätt

Följande fråga använder numeriska värden med 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); 

Denna fråga visar endast posten för de fakulteter vars lön har godkänts i IN-operatören WHERE-klausul.

Produktion:

Faculty_Id Faculty_First_Name Faculty_Dept_Id Faculty_Joining_Date Fakultet_Lön
1002 Bulbul 4002 2019-12-31 38 000
1004 Saurabh 4001 2020-10-10 45 000
1005 Shivani 4001 2019-07-15 42 000
1007 Shyam 4003 2021-06-21 35 000

Följande fråga använder text- eller teckenvärden med logisk operator IN:

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

Den här frågan visar endast posten för de fakulteter vars stad ingår i parentesen för IN-operatorn i WHERE-satsen.

Produktion:

Faculty_Id Faculty_First_Name Faculty_Joining_Date Fakultet_Stad
1004 Saurabh 2020-10-10 Mumbai
1005 Shivani 2019-07-15 Kolkata
1007 Shyam 2021-06-21 Lyckligtvis

Följande fråga använder DATEformat med IN logisk operator:

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

Den här frågan visar endast de poster från fakulteter vars anslutningsdatum har passerats i IN-operatorn för WHERE-klausulen.

Produktion:

Faculty_Id Faculty_First_Name Faculty_Dept_Id Faculty_Joining_Date Fakultet_Lön
1001 Björn 4001 2020-01-02 20 000
1004 Saurabh 4001 2020-10-10 45 000
1005 Shivani 4001 2019-07-15 42 000
1007 Shyam 4003 2021-06-21 35 000

Följande fråga använder SQL UPDATE-kommandot med IN logisk operator:

instans av i java
 UPDATE Faculty_Info SET Faculty_Salary = 50000 WHERE Faculty_Dept_ID IN (4002, 4003); 

Denna fråga uppdaterar lönen för de fakulteter vars Dept_Id har godkänts i IN-operatorn för WHERE-klausulen.

För att kontrollera resultatet av ovanstående fråga, skriv följande SELECT-fråga i SQL:

 SELECT * FROM Faculty_Info; 
Faculty_Id Faculty_First_Name Faculty_Last_Name Faculty_Dept_Id Faculty_Joining_Date Fakultet_Stad Fakultet_Lön
1001 Björn Sharma 4001 2020-01-02 Delhi 20 000
1002 Bulbul Roy 4002 2019-12-31 Delhi 50 000
1004 Saurabh Roy 4001 2020-10-10 Mumbai 45 000
1005 Shivani Singhania 4001 2019-07-15 Kolkata 42 000
1006 Avinash Sharma 4002 2019-11-11 Delhi 50 000
1007 Shyam Du kysser 4003 2021-06-21 Lyckligtvis 50 000

SQL IN-operatör med subquery

I Structured Query Language kan vi också använda underfrågan med den logiska IN-operatorn.

Syntaxen för IN-operatorn med underfråga ges nedan:

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

Om du vill förstå IN-operatorn med subquery måste du skapa de två olika tabellerna i Structured Query Language med hjälp av CREATE-satsen.

Följande fråga skapar Faculty_Info-tabellen i databasen:

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

Följande fråga skapar Department_Info tabell i databasen:

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

Följande INSERT-frågor infogar fakulteternas poster i tabellen Faculty_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); 

Följande INSERT-frågor infogar posterna för avdelningar i tabellen 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); 

Följande SELECT-sats visar data i tabellen Faculty_Info:

 SELECT * FROM Faculty_Info; 

Faculty_Id Faculty_First_Name Faculty_Last_Name Faculty_Dept_Id Faculty_Address Fakultet_Stad Fakultet_Lön
1001 Björn Sharma 4001 gatan 22 Nya Delhi 20 000
1002 Bulbul Roy 4002 120 Street Nya Delhi 38 000
1004 Saurabh Roy 4001 221 Street Mumbai 45 000
1005 Shivani Singhania 4001 501 Street Kolkata 42 000
1006 Avinash Sharma 4002 12 Street Delhi 28 000
1007 Shyam Du kysser 4003 202 Street Lyckligtvis 35 000

Följande fråga visar avdelningens poster från tabellen Department_Info:

 SELECT * FROM Department_Info; 
Hur man använder IN i SQL

Följande fråga använder IN-operator med en underfråga:

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

Den här frågan visar posten för de fakulteter vars Dept_ID of Faculty_Info-tabell matchas med Dept_Id of Department_Info-tabellen.

Produktion:

Faculty_Id Faculty_First_Name Faculty_Last_Name Faculty_Dept_Id Faculty_Address Fakultet_Stad Fakultet_Lön
1002 Bulbul Roy 4002 120 Street Nya Delhi 38 000
1006 Avinash Sharma 4002 12 Street Delhi 28 000
1007 Shyam Du kysser 4003 202 Street Lyckligtvis 35 000

Vad är INTE IN i SQL?

NOT IN är en annan operator i Structured Query Language, som är precis motsatt SQL IN-operatorn. Det låter dig komma åt dessa värden från tabellen, som inte passerar inom parentes för IN-operatorn.

NOT IN-operatorn kan användas i SQL-frågorna INSERT, UPDATE, SELECT och DELETE.

Syntax för NOT IN-operatorn:

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

Om du vill använda NOT IN-operatorn i SQL-satserna måste du följa de givna stegen i samma ordning:

  1. Skapa en databas i SQL-systemet.
  2. Skapa den nya tabellen i databasen.
  3. Infoga data i tabellen
  4. Visa infogade data
  5. Använd NOT IN-operatorn för att se data.

Nu ska vi förklara varje steg ett efter ett i korthet med det bästa SQL-exemplet:

Steg 1: Skapa den nya Simple databasen

Följande fråga skapar den nya Civil_Industry Databas i SQL-server:

 CREATE Database Industry; 

Steg 2: Skapa den nya tabellen

Följande fråga skapar Worker_Info bordet i Civil_Industry Databas:

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

Steg 3: Infoga värden

Följande INSERT-frågor infogar poster för arbetare i tabellen 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); 

Steg 4: Visa tabellens data

Följande fråga visar data från tabellen Worker_Info.

 SELECT * FROM Worker_Info; 

Arbetar-ID Arbetarnamn Worker_Gender Worker_Age Arbetaradress Arbetare_Lön
1001 Björn Manlig 18 Agra 35 000
1002 Bulbul Kvinna 18 Lyckligtvis 42 000
1004 Saurabh Manlig tjugo Lyckligtvis 45 000
1005 Shivani Kvinna 18 Agra 28 000
1006 Avinash Manlig 22 Delhi 38 000
1007 Shyam Manlig 18 Bangalore 20 000

Steg 4: Använd NOT IN-operatören

Följande fråga använder NOT IN-operatorn med numeriska data:

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

Den här SELECT-frågan visar alla arbetare i utgången vars lön inte passeras i NOT IN-operatorn.

Resultatet av ovanstående uttalande visas i följande tabell:

java skapande lista
Arbetar-ID Arbetarnamn Worker_Gender Worker_Age Arbetaradress Arbetare_Lön
1002 Bulbul Kvinna 18 Lyckligtvis 42 000
1004 Saurabh Manlig tjugo Lyckligtvis 45 000
1007 Shyam Manlig 18 Bangalore 20 000

Följande fråga använder den logiska operatorn NOT IN med tecken- eller textvärden:

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

Den här frågan visar posten för alla arbetare vars adress inte skickas i NOT IN-operatorn.

Produktion:

Arbetar-ID Arbetarnamn Worker_Gender Worker_Age Arbetaradress Arbetare_Lön
1001 Björn Manlig 18 Agra 35 000
1005 Shivani Kvinna 18 Agra 28 000
1007 Shyam Manlig 18 Bangalore 20 000