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ä:
- Luo tietokanta SQL:llä.
- Luo uusi SQL-taulukko.
- Syötä tiedot taulukkoon.
- Näytä lisätyt tiedot.
- 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;
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
- Luo tietokanta SQL-järjestelmään.
- Luo uusi taulukko tietokantaan.
- Syötä tiedot taulukkoon
- Näytä lisätyt tiedot
- 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 |