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:
- Skapa en databas i SQL.
- Skapa den nya SQL-tabellen.
- Infoga data i tabellen.
- Visa infogade data.
- 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;
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:
- Skapa en databas i SQL-systemet.
- Skapa den nya tabellen i databasen.
- Infoga data i tabellen
- Visa infogade data
- 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 |