logo

Hvordan bruke IN i SQL

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:

  1. Lag en database i SQL.
  2. Opprett den nye SQL-tabellen.
  3. Sett inn dataene i tabellen.
  4. Se de innsatte dataene.
  5. 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; 
Hvordan bruke IN i SQL

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:

  1. Lag en database i SQL-systemet.
  2. Opprett den nye tabellen i databasen.
  3. Sett inn dataene i tabellen
  4. Se de innsatte dataene
  5. 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