I denne SQL-artikkelen lærer du hvordan du bruker IN-nøkkelord i spørringene i SQL-databasen.
Hva er IN nøkkelord i SQL?
De I er en logisk operator i Structured Query Language som lar databasebrukerne definere mer enn én verdi i WHERE-leddet.
WHERE-leddet med IN-operator viser de postene i resultatet som samsvarer med det gitte settet med verdier. Vi kan også spesifisere underspørringen i parentesen til IN-operatøren.
Vi kan bruke IN-operatoren med INSERT-, SELECT-, UPDATE- og DELETE-spørringene i SQL-databasen.
IN-operatoren i SQL erstatter prosessen med flere ELLER-betingelser i spørringer.
Syntaks for 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);
Hvis du vil bruke IN-operatoren i SQL-setningene, må du følge trinnene nedenfor i samme rekkefølge:
- Lag en database i SQL.
- Opprett den nye SQL-tabellen.
- Sett inn dataene i tabellen.
- Se de innsatte dataene.
- Bruk SQL IN-operatoren for å vise tabellens data.
Nå skal vi forklare hvert trinn en etter en i korthet med det beste SQL-eksemplet:
Trinn 1: Lag en enkel ny database
Det første trinnet er å opprette en ny database i Structured Query Language.
Følgende CREATE-setning oppretter den nye Mekanisk_Høgskole Database i SQL server:
CREATE Database Mechanical_College;
Trinn 2: Lag en ny tabell
Bruk nå følgende SQL-syntaks som hjelper deg med å lage den nye 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ølgende CREATE-setning oppretter Fakultet_Info bord i Mekanisk_Høgskole 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 );
Trinn 3: Sett inn dataene i tabellen
Følgende INSERT-spørringer setter inn postene til fakultetene i Faculty_Info-tabellen:
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);
Trinn 4: Se de innsatte dataene
Følgende SELECT-setning viser dataene i Faculty_Info-tabellen:
SELECT * FROM Faculty_Info;
Faculty_Id | Fakultetets_Fornavn | Fakultet_etternavn | Faculty_Dept_Id | Fakultet_Bislutningsdato | Fakultet_by | Fakultet_Lønn |
---|---|---|---|---|---|---|
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 | 42000 |
1006 | Avinash | Sharma | 4002 | 2019-11-11 | Delhi | 28 000 |
1007 | Shyam | Du kysser | 4003 | 2021-06-21 | Lucknow | 35 000 |
Trinn 5: Bruk IN-operatøren til å se dataene i Faculty_Info-tabellen på forskjellige måter
Følgende spørring bruker numeriske verdier 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);
Denne spørringen viser bare posten til de fakultetene hvis lønn er bestått i IN-operatøren til WHERE-klausulen.
Produksjon:
liste på java
Faculty_Id | Fakultetets_Fornavn | Faculty_Dept_Id | Fakultet_Bislutningsdato | Fakultet_Lønn |
---|---|---|---|---|
1002 | Bulbul | 4002 | 2019-12-31 | 38 000 |
1004 | Saurabh | 4001 | 2020-10-10 | 45 000 |
1005 | Shivani | 4001 | 2019-07-15 | 42000 |
1007 | Shyam | 4003 | 2021-06-21 | 35 000 |
Følgende spørring bruker tekst- eller tegnverdier med logisk IN-operator:
SELECT Faculty_Id, Faculty_First_Name, Faculty_Joining_Date, Faculty_City FROM Faculty_Info WHERE Faculty_City IN ( Mumbai, Kolkata, Lucknow);
Denne spørringen viser bare posten for de fakultetene hvis by er inkludert i parentesen til IN-operatoren i WHERE-klausulen.
Produksjon:
Faculty_Id | Fakultetets_Fornavn | Fakultet_Bislutningsdato | Fakultet_by |
---|---|---|---|
1004 | Saurabh | 2020-10-10 | Mumbai |
1005 | Shivani | 2019-07-15 | Kolkata |
1007 | Shyam | 2021-06-21 | Lucknow |
Følgende spørring bruker 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);
Denne spørringen viser bare postene til fakultetene hvis tilslutningsdato er passert i IN-operatøren til WHERE-klausulen.
Produksjon:
Faculty_Id | Fakultetets_Fornavn | Faculty_Dept_Id | Fakultet_Bislutningsdato | Fakultet_Lønn |
---|---|---|---|---|
1001 | Bjørn | 4001 | 2020-01-02 | 20 000 |
1004 | Saurabh | 4001 | 2020-10-10 | 45 000 |
1005 | Shivani | 4001 | 2019-07-15 | 42000 |
1007 | Shyam | 4003 | 2021-06-21 | 35 000 |
Følgende spørring bruker SQL UPDATE-kommandoen med IN logisk operator:
UPDATE Faculty_Info SET Faculty_Salary = 50000 WHERE Faculty_Dept_ID IN (4002, 4003);
Denne spørringen oppdaterer lønnen til de fakultetene hvis Dept_Id er bestått i IN-operatøren til WHERE-klausulen.
For å sjekke resultatet av spørringen ovenfor, skriv inn følgende SELECT-spørring i SQL:
SELECT * FROM Faculty_Info;
Faculty_Id | Fakultetets_Fornavn | Fakultet_etternavn | Faculty_Dept_Id | Fakultet_Bislutningsdato | Fakultet_by | Fakultet_Lønn |
---|---|---|---|---|---|---|
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 | 42000 |
1006 | Avinash | Sharma | 4002 | 2019-11-11 | Delhi | 50 000 |
1007 | Shyam | Du kysser | 4003 | 2021-06-21 | Lucknow | 50 000 |
SQL IN-operatør med underspørring
I Structured Query Language kan vi også bruke underspørringen med den logiske IN-operatoren.
Syntaksen til IN-operatoren med underspørring er gitt nedenfor:
SELECT Column_Name_1, Column_Name_2, Column_Name_3, ......, Column_Name_N FROM Table_Name WHERE Column_Name IN (Subquery);
Hvis du vil forstå IN-operatoren med underspørring, må du lage de to forskjellige tabellene i Structured Query Language ved å bruke CREATE-setningen.
Følgende spørring oppretter 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ølgende spørring oppretter Avdeling_Info tabell i databasen:
CREATE TABLE Department_Info ( Dept_Id INT NOT NULL, Dept_Name Varchar(100), Head_Id INT );
Følgende INSERT-spørringer setter inn postene til fakultetene i Faculty_Info-tabellen:
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ølgende INSERT-spørringer setter inn postene til avdelinger 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ølgende SELECT-setning viser dataene i Faculty_Info-tabellen:
SELECT * FROM Faculty_Info;
Faculty_Id | Fakultetets_Fornavn | Fakultet_etternavn | Faculty_Dept_Id | Fakultetets_adresse | Fakultet_by | Fakultet_Lønn |
---|---|---|---|---|---|---|
1001 | Bjørn | Sharma | 4001 | 22 gate | New Delhi | 20 000 |
1002 | Bulbul | Roy | 4002 | 120 gate | New Delhi | 38 000 |
1004 | Saurabh | Roy | 4001 | 221 gate | Mumbai | 45 000 |
1005 | Shivani | Singhania | 4001 | 501 Street | Kolkata | 42000 |
1006 | Avinash | Sharma | 4002 | 12 gate | Delhi | 28 000 |
1007 | Shyam | Du kysser | 4003 | 202 gate | Lucknow | 35 000 |
Følgende spørring viser postene til avdelingen fra Department_Info-tabellen:
SELECT * FROM Department_Info;
Følgende spørring bruker IN-operator med en underspørring:
SELECT * FROM Faculty_Info WHERE Faculty_Dept_Id IN ( Select Dept_Id FROM Department_Info WHERE Head_Id >= 1007);
Denne spørringen viser posten for de fakultetene hvis Dept_ID of Faculty_Info-tabellen samsvarer med Dept_Id of Department_Info-tabellen.
Produksjon:
Faculty_Id | Fakultetets_Fornavn | Fakultet_etternavn | Faculty_Dept_Id | Fakultetets_adresse | Fakultet_by | Fakultet_Lønn |
---|---|---|---|---|---|---|
1002 | Bulbul | Roy | 4002 | 120 gate | New Delhi | 38 000 |
1006 | Avinash | Sharma | 4002 | 12 gate | Delhi | 28 000 |
1007 | Shyam | Du kysser | 4003 | 202 gate | Lucknow | 35 000 |
Hva er IKKE IN i SQL?
NOT IN er en annen operatør i Structured Query Language, som er motsatt av SQL IN-operatøren. Den lar deg få tilgang til disse verdiene fra tabellen, som ikke passerer i parentesen til IN-operatøren.
NOT IN-operatoren kan brukes i SQL-spørringene INSERT, UPDATE, SELECT og DELETE.
Syntaks for 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);
Hvis du vil bruke NOT IN-operatoren i SQL-setningene, må du følge de angitte trinnene i samme rekkefølge:
- Lag en database i SQL-systemet.
- Opprett den nye tabellen i databasen.
- Sett inn dataene i tabellen
- Se de innsatte dataene
- Bruk NOT IN-operatøren for å se dataene.
Nå skal vi forklare hvert trinn en etter en i korthet med det beste SQL-eksemplet:
Trinn 1: Opprett den nye Simple databasen
Følgende spørring oppretter den nye Sivil_industri Database i SQL server:
CREATE Database Industry;
Trinn 2: Lag den nye tabellen
Følgende spørring oppretter Worker_Info bord i Sivil_industri 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 );
Trinn 3: Sett inn verdiene
Følgende INSERT-spørringer setter inn oppføringene til arbeidere i Worker_Info-tabellen:
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);
Trinn 4: Se tabellens data
Følgende spørring viser dataene til Worker_Info-tabellen.
SELECT * FROM Worker_Info;
Arbeider_ID | Arbeider_navn | Arbeider_kjønn | Arbeider_Alder | Arbeider_adresse | Arbeider_Lønn |
---|---|---|---|---|---|
1001 | Bjørn | Mann | 18 | Agra | 35 000 |
1002 | Bulbul | Hunn | 18 | Lucknow | 42000 |
1004 | Saurabh | Mann | tjue | Lucknow | 45 000 |
1005 | Shivani | Hunn | 18 | Agra | 28 000 |
1006 | Avinash | Mann | 22 | Delhi | 38 000 |
1007 | Shyam | Mann | 18 | Bangalore | 20 000 |
Trinn 4: Bruk NOT IN-operatøren
Følgende spørring bruker NOT IN-operatoren med numeriske data:
SELECT * FROM Worker_Info WHERE Worker_salary NOT IN (35000, 28000, 38000);
Denne SELECT-spørringen viser alle arbeiderne i utdataene hvis lønn ikke sendes i NOT IN-operatoren.
Resultatet av uttalelsen ovenfor er vist i følgende tabell:
Arbeider_ID | Arbeider_navn | Arbeider_kjønn | Arbeider_Alder | Arbeider_adresse | Arbeider_Lønn |
---|---|---|---|---|---|
1002 | Bulbul | Hunn | 18 | Lucknow | 42000 |
1004 | Saurabh | Mann | tjue | Lucknow | 45 000 |
1007 | Shyam | Mann | 18 | Bangalore | 20 000 |
Følgende spørring bruker NOT IN logisk operator med tegn- eller tekstverdier:
SELECT * FROM Worker_Info WHERE Worker_Address NOT IN (Lucknow, Delhi);
Denne spørringen viser posten til alle de arbeiderne hvis adresse ikke er sendt i NOT IN-operatoren.
Produksjon:
Arbeider_ID | Arbeider_navn | Arbeider_kjønn | Arbeider_Alder | Arbeider_adresse | Arbeider_Lønn |
---|---|---|---|---|---|
1001 | Bjørn | Mann | 18 | Agra | 35 000 |
1005 | Shivani | Hunn | 18 | Agra | 28 000 |
1007 | Shyam | Mann | 18 | Bangalore | 20 000 |