logo

IN:n käyttäminen SQL:ssä

Tässä SQL-artikkelissa opit käyttämään IN-avainsanaa SQL-tietokannan kyselyissä.

Mikä on IN-avainsana SQL:ssä?

The SISÄÄN on looginen operaattori Structured Query Languageissa, jonka avulla tietokannan käyttäjät voivat määrittää useamman kuin yhden arvon WHERE-lauseessa.

WHERE-lause, jossa on IN-operaattori, näyttää tuloksessa ne tietueet, jotka vastaavat annettuja arvoja. Voimme myös määrittää alikyselyn IN-operaattorin suluissa.

Voimme käyttää IN-operaattoria SQL-tietokannan INSERT-, SELECT-, UPDATE- ja DELETE-kyselyiden kanssa.

IN-operaattori SQL:ssä korvaa useiden TAI-ehtojen prosessin kyselyissä.

IN-operaattorin syntaksi:

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

Jos haluat käyttää IN-operaattoria SQL-käskyissä, sinun on noudatettava alla annettuja vaiheita samassa järjestyksessä:

  1. Luo tietokanta SQL:llä.
  2. Luo uusi SQL-taulukko.
  3. Syötä tiedot taulukkoon.
  4. Näytä lisätyt tiedot.
  5. Käytä SQL IN -operaattoria taulukon tietojen näyttämiseen.

Nyt aiomme selittää jokaisen vaiheen yksitellen lyhyesti parhaan SQL-esimerkin avulla:

Vaihe 1: Luo yksinkertainen uusi tietokanta

Ensimmäinen askel on luoda uusi tietokanta Structured Query Language -kielellä.

Seuraava CREATE-käsky luo uuden Mekaaninen_ College Tietokanta SQL-palvelimessa:

 CREATE Database Mechanical_College; 

Vaihe 2: Luo uusi taulukko

Käytä nyt seuraavaa SQL-syntaksia, joka auttaa luomaan uuden taulukon tietokantaan:

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

Seuraava CREATE-käsky luo Tiedekunnan_tiedot taulukossa Mekaaninen_ College Tietokanta:

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

Vaihe 3: Lisää tiedot taulukkoon

Seuraavat INSERT-kyselyt lisäävät tiedekuntien tietueet Faculty_Info-taulukkoon:

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

Vaihe 4: Näytä lisätyt tiedot

Seuraava SELECT-käsky näyttää Faculty_Info-taulukon tiedot:

 SELECT * FROM Faculty_Info; 

Tiedekunnan_tunnus Tiedekunnan_etunimi Tiedekunnan_sukunimi Tiedekunnan_osaston_tunnus Tiedekunnan_liittymispäivä Tiedekunta_kaupunki Tiedekunta_Palkka
1001 karhu Sharma 4001 2020-01-02 Delhi 20 000
1002 Bulbul Roy 4002 31.12.2019 Delhi 38 000
1004 Saurabh Roy 4001 10.10.2020 Mumbai 45 000
1005 Shivani Singhania 4001 15.7.2019 Kolkata 42 000
1006 Avinash Sharma 4002 11.11.2019 Delhi 28 000
1007 Shyam Sinä suutelet 4003 21.06.2021 Lucknow 35 000

Vaihe 5: Käytä IN-operaattoria tarkastellaksesi Faculty_Info-taulukon tietoja eri tavoin

Seuraava kysely käyttää numeerisia arvoja IN-operaattorilla:

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

Tämä kysely näyttää vain tietueen niistä tiedekunnista, joiden palkka on ohitettu WHERE-lauseen IN-operaattorissa.

Lähtö:

Tiedekunnan_tunnus Tiedekunnan_etunimi Tiedekunnan_osaston_tunnus Tiedekunnan_liittymispäivä Tiedekunta_Palkka
1002 Bulbul 4002 31.12.2019 38 000
1004 Saurabh 4001 10.10.2020 45 000
1005 Shivani 4001 15.7.2019 42 000
1007 Shyam 4003 21.06.2021 35 000

Seuraava kysely käyttää teksti- tai merkkiarvoja IN-loogisen operaattorin kanssa:

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

Tämä kysely näyttää vain tietueen niistä tiedekunnista, joiden kaupunki on WHERE-lauseen IN-operaattorin suluissa.

Lähtö:

Tiedekunnan_tunnus Tiedekunnan_etunimi Tiedekunnan_liittymispäivä Tiedekunta_kaupunki
1004 Saurabh 10.10.2020 Mumbai
1005 Shivani 15.7.2019 Kolkata
1007 Shyam 21.06.2021 Lucknow

Seuraava kysely käyttää DATE-muotoa IN loogisen operaattorin kanssa:

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

Tämä kysely näyttää vain ne tiedekuntien tietueet, joiden liittymispäivä on ohitettu WHERE-lauseen IN-operaattorissa.

Lähtö:

Tiedekunnan_tunnus Tiedekunnan_etunimi Tiedekunnan_osaston_tunnus Tiedekunnan_liittymispäivä Tiedekunta_Palkka
1001 karhu 4001 2020-01-02 20 000
1004 Saurabh 4001 10.10.2020 45 000
1005 Shivani 4001 15.7.2019 42 000
1007 Shyam 4003 21.06.2021 35 000

Seuraava kysely käyttää SQL UPDATE -komentoa IN loogisen operaattorin kanssa:

 UPDATE Faculty_Info SET Faculty_Salary = 50000 WHERE Faculty_Dept_ID IN (4002, 4003); 

Tämä kysely päivittää niiden tiedekuntien palkat, joiden Dept_Id on ohitettu WHERE-lauseen IN-operaattorissa.

Voit tarkistaa yllä olevan kyselyn tuloksen kirjoittamalla seuraavan SELECT-kyselyn SQL:ssä:

 SELECT * FROM Faculty_Info; 
Tiedekunnan_tunnus Tiedekunnan_etunimi Tiedekunnan_sukunimi Tiedekunnan_osaston_tunnus Tiedekunnan_liittymispäivä Tiedekunta_kaupunki Tiedekunta_Palkka
1001 karhu Sharma 4001 2020-01-02 Delhi 20 000
1002 Bulbul Roy 4002 31.12.2019 Delhi 50 000
1004 Saurabh Roy 4001 10.10.2020 Mumbai 45 000
1005 Shivani Singhania 4001 15.7.2019 Kolkata 42 000
1006 Avinash Sharma 4002 11.11.2019 Delhi 50 000
1007 Shyam Sinä suutelet 4003 21.06.2021 Lucknow 50 000

SQL IN -operaattori alikyselyllä

Structured Query Languageissa voimme käyttää alikyselyä myös IN-loogisen operaattorin kanssa.

IN-operaattorin syntaksi alikyselyn kanssa on annettu alla:

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

Jos haluat ymmärtää IN-operaattorin alikyselyllä, sinun on luotava kaksi erilaista taulukkoa Structured Query Language -kielellä käyttämällä CREATE-käskyä.

Seuraava kysely luo tietokantaan Faculty_Info-taulukon:

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

Seuraava kysely luo Osasto_Info taulukko tietokannassa:

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

Seuraavat INSERT-kyselyt lisäävät tiedekuntien tietueet Faculty_Info-taulukkoon:

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

Seuraavat INSERT-kyselyt lisäävät osastojen tietueet Department_Info-taulukkoon:

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

Seuraava SELECT-käsky näyttää Faculty_Info-taulukon tiedot:

 SELECT * FROM Faculty_Info; 

Tiedekunnan_tunnus Tiedekunnan_etunimi Tiedekunnan_sukunimi Tiedekunnan_osaston_tunnus Tiedekunnan_osoite Tiedekunta_kaupunki Tiedekunta_Palkka
1001 karhu Sharma 4001 22 katu New Delhi 20 000
1002 Bulbul Roy 4002 120 katu New Delhi 38 000
1004 Saurabh Roy 4001 221 katu Mumbai 45 000
1005 Shivani Singhania 4001 501 Street Kolkata 42 000
1006 Avinash Sharma 4002 12 katu Delhi 28 000
1007 Shyam Sinä suutelet 4003 202 katu Lucknow 35 000

Seuraava kysely näyttää osaston tietueet Department_Info-taulukosta:

 SELECT * FROM Department_Info; 
IN:n käyttäminen SQL:ssä

Seuraava kysely käyttää IN-operaattoria alikyselyn kanssa:

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

Tämä kysely näyttää niiden tiedekuntien tietueen, joiden tiedekunnan_tiedot-taulukon osastotunnus on täsmäämässä Department_Info-taulukon Osaston_tunnus.

Lähtö:

Tiedekunnan_tunnus Tiedekunnan_etunimi Tiedekunnan_sukunimi Tiedekunnan_osaston_tunnus Tiedekunnan_osoite Tiedekunta_kaupunki Tiedekunta_Palkka
1002 Bulbul Roy 4002 120 katu New Delhi 38 000
1006 Avinash Sharma 4002 12 katu Delhi 28 000
1007 Shyam Sinä suutelet 4003 202 katu Lucknow 35 000

Mitä EI ole IN SQL:ssä?

NOT IN on toinen operaattori Structured Query Languageissa, joka on aivan vastapäätä SQL IN -operaattoria. Sen avulla voit käyttää niitä arvoja taulukosta, jotka eivät välitä IN-operaattorin suluissa.

NOT IN -operaattoria voidaan käyttää INSERT-, UPDATE-, SELECT- ja DELETE SQL -kyselyissä.

NOT IN -operaattorin syntaksi:

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

Jos haluat käyttää NOT IN -operaattoria SQL:n käskyissä, sinun on noudatettava annettuja vaiheita samassa järjestyksessä:

java kääntää merkkijonon
  1. Luo tietokanta SQL-järjestelmään.
  2. Luo uusi taulukko tietokantaan.
  3. Syötä tiedot taulukkoon
  4. Näytä lisätyt tiedot
  5. Käytä NOT IN -operaattoria tarkastellaksesi tietoja.

Nyt aiomme selittää jokaisen vaiheen yksitellen lyhyesti parhaan SQL-esimerkin avulla:

Vaihe 1: Luo uusi yksinkertainen tietokanta

Seuraava kysely luo uuden Siviiliteollisuus Tietokanta SQL-palvelimessa:

 CREATE Database Industry; 

Vaihe 2: Luo uusi taulukko

Seuraava kysely luo Työntekijän_tiedot taulukossa Siviiliteollisuus Tietokanta:

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

Vaihe 3: Lisää arvot

koneoppiminen ja tyypit

Seuraavat INSERT-kyselyt lisäävät työntekijöiden tietueet Worker_Info-taulukkoon:

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

Vaihe 4: Tarkastele taulukon tietoja

Seuraava kysely näyttää Worker_Info-taulukon tiedot.

 SELECT * FROM Worker_Info; 

Työntekijän_tunnus Työntekijän_nimi Työntekijä_sukupuoli Työntekijä_ikä Työntekijän_osoite Työntekijä_ Palkka
1001 karhu Uros 18 Agra 35 000
1002 Bulbul Nainen 18 Lucknow 42 000
1004 Saurabh Uros kaksikymmentä Lucknow 45 000
1005 Shivani Nainen 18 Agra 28 000
1006 Avinash Uros 22 Delhi 38 000
1007 Shyam Uros 18 Bangalore 20 000

Vaihe 4: Käytä NOT IN -operaattoria

Seuraava kysely käyttää NOT IN -operaattoria numeeristen tietojen kanssa:

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

Tämä SELECT-kysely näyttää tulosteessa kaikki ne työntekijät, joiden palkkaa ei ole ohitettu NOT IN -operaattorilla.

Yllä olevan lausunnon tulos näkyy seuraavassa taulukossa:

Työntekijän_tunnus Työntekijän_nimi Työntekijä_sukupuoli Työntekijä_ikä Työntekijän_osoite Työntekijä_ Palkka
1002 Bulbul Nainen 18 Lucknow 42 000
1004 Saurabh Uros kaksikymmentä Lucknow 45 000
1007 Shyam Uros 18 Bangalore 20 000

Seuraava kysely käyttää NOT IN loogista operaattoria merkki- tai tekstiarvojen kanssa:

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

Tämä kysely näyttää tietueen kaikista niistä työntekijöistä, joiden osoitetta ei välitetä NOT IN -operaattorissa.

Lähtö:

Työntekijän_tunnus Työntekijän_nimi Työntekijä_sukupuoli Työntekijä_ikä Työntekijän_osoite Työntekijä_ Palkka
1001 karhu Uros 18 Agra 35 000
1005 Shivani Nainen 18 Agra 28 000
1007 Shyam Uros 18 Bangalore 20 000