logo

Az IN használata SQL-ben

Ebből az SQL-cikkből megtudhatja, hogyan kell használni az IN kulcsszót az SQL-adatbázis lekérdezésében.

Mi az IN kulcsszó az SQL-ben?

A BAN BEN egy logikai operátor a Structured Query Language-ben, amely lehetővé teszi az adatbázis-felhasználók számára, hogy egynél több értéket definiáljanak a WHERE záradékban.

A WHERE záradék az IN operátorral azokat a rekordokat jeleníti meg az eredményben, amelyek megfelelnek az adott értékkészletnek. Az IN operátor zárójelében is megadhatjuk az allekérdezést.

Az IN operátort az INSERT, SELECT, UPDATE és DELETE lekérdezésekkel használhatjuk az SQL adatbázisban.

csináld java közben

Az SQL IN operátora lecseréli a több VAGY feltétel folyamatát a lekérdezésekben.

IN operátor szintaxisa:

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

Ha az IN operátort szeretné használni az SQL utasításokban, akkor az alábbi lépéseket ugyanabban a sorrendben kell végrehajtania:

  1. Hozzon létre egy adatbázist SQL-ben.
  2. Hozza létre az új SQL-táblát.
  3. Illessze be az adatokat a táblázatba!
  4. Tekintse meg a beszúrt adatokat.
  5. Használja az SQL IN operátort a táblázat adatainak megjelenítéséhez.

Most minden lépést egyenként röviden elmagyarázunk a legjobb SQL-példával:

1. lépés: Hozzon létre egy egyszerű új adatbázist

Az első lépés egy új adatbázis létrehozása a Structured Query Language nyelven.

A következő CREATE utasítás létrehozza az újat Mechanikai_Főiskola Adatbázis az SQL szerveren:

 CREATE Database Mechanical_College; 

2. lépés: Hozzon létre egy új táblázatot

Most használja a következő SQL szintaxist, amely segít az új tábla létrehozásában az adatbázisban:

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

A következő CREATE utasítás létrehozza a Kar_Infó táblázat a Mechanikai_Főiskola Adatbázis:

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

3. lépés: Illessze be az adatokat a táblázatba

A következő INSERT lekérdezések beszúrják a Karok rekordjait a Faculty_Info táblába:

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

4. lépés: Tekintse meg a beszúrt adatokat

A következő SELECT utasítás a Faculty_Info tábla adatait jeleníti meg:

 SELECT * FROM Faculty_Info; 

Kar_Id Kar_Keresztnév Kar_Vezetéknév Kar_Osztályazonosító Kar_Csatlakozás_Dátuma Kar_Város Kar_Bérezés
1001 medve Sharma 4001 2020-01-02 Delhi 20000
1002 Bulbul Roy 4002 2019-12-31 Delhi 38000
1004 Saurabh Roy 4001 2020-10-10 Mumbai 45000
1005 Shivani Singhania 4001 2019-07-15 Kolkata 42000
1006 Avinash Sharma 4002 2019-11-11 Delhi 28000
1007 Shyam Csókolsz 4003 2021-06-21 Lucknow 35000

5. lépés: Az IN operátorral különböző módokon tekintheti meg a Faculty_Info tábla adatait

A következő lekérdezés számértékeket használ IN operátorral:

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

Ez a lekérdezés csak azoknak a Karoknak a rekordját jeleníti meg, amelyek fizetését a WHERE záradék IN operátora adja át.

Kimenet:

Kar_Id Kar_Keresztnév Kar_Osztályazonosító Kar_Csatlakozás_Dátuma Kar_Bérezés
1002 Bulbul 4002 2019-12-31 38000
1004 Saurabh 4001 2020-10-10 45000
1005 Shivani 4001 2019-07-15 42000
1007 Shyam 4003 2021-06-21 35000

A következő lekérdezés szöveges vagy karakteres értékeket használ IN logikai operátorral:

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

Ez a lekérdezés csak azoknak a karoknak a rekordját jeleníti meg, amelyek városa a WHERE záradékban az IN operátor zárójelében szerepel.

Kimenet:

Kar_Id Kar_Keresztnév Kar_Csatlakozás_Dátuma Kar_Város
1004 Saurabh 2020-10-10 Mumbai
1005 Shivani 2019-07-15 Kolkata
1007 Shyam 2021-06-21 Lucknow

A következő lekérdezés a DATE formátumot használja IN logikai operátorral:

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

Ez a lekérdezés csak azokat a Karok rekordjait jeleníti meg, amelyek csatlakozási dátuma a WHERE záradék IN operátorában átment.

Kimenet:

Kar_Id Kar_Keresztnév Kar_Osztályazonosító Kar_Csatlakozás_Dátuma Kar_Bérezés
1001 medve 4001 2020-01-02 20000
1004 Saurabh 4001 2020-10-10 45000
1005 Shivani 4001 2019-07-15 42000
1007 Shyam 4003 2021-06-21 35000

A következő lekérdezés az SQL UPDATE parancsot használja IN logikai operátorral:

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

Ez a lekérdezés frissíti azoknak a karoknak a fizetését, amelyeknek a Dept_Id a WHERE záradék IN operátorában van átadva.

A fenti lekérdezés eredményének ellenőrzéséhez írja be a következő SELECT lekérdezést SQL-be:

 SELECT * FROM Faculty_Info; 
Kar_Id Kar_Keresztnév Kar_Vezetéknév Kar_Osztályazonosító Kar_Csatlakozás_Dátuma Kar_Város Kar_Bérezés
1001 medve Sharma 4001 2020-01-02 Delhi 20000
1002 Bulbul Roy 4002 2019-12-31 Delhi 50000
1004 Saurabh Roy 4001 2020-10-10 Mumbai 45000
1005 Shivani Singhania 4001 2019-07-15 Kolkata 42000
1006 Avinash Sharma 4002 2019-11-11 Delhi 50000
1007 Shyam Csókolsz 4003 2021-06-21 Lucknow 50000

SQL IN operátor segédlekérdezéssel

A Strukturált lekérdezési nyelvben az IN logikai operátorral is használhatjuk a részlekérdezést.

Az IN operátor szintaxisa az allekérdezéssel az alábbiakban látható:

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

Ha meg akarja érteni az IN operátort az allekérdezéssel, akkor a CREATE utasítással létre kell hoznia a két különböző táblát a Strukturált lekérdezési nyelvben.

A következő lekérdezés létrehozza a Faculty_Info táblát az adatbázisban:

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

A következő lekérdezés létrehozza a Osztály_Infó táblázat az adatbázisban:

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

A következő INSERT lekérdezések beszúrják a Karok rekordjait a Faculty_Info táblába:

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

A következő INSERT lekérdezések beszúrják a részlegek rekordjait a Department_Info táblába:

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

A következő SELECT utasítás a Faculty_Info tábla adatait jeleníti meg:

 SELECT * FROM Faculty_Info; 

Kar_Id Kar_Keresztnév Kar_Vezetéknév Kar_Osztályazonosító Kar_címe Kar_Város Kar_Bérezés
1001 medve Sharma 4001 22 utca New Delhi 20000
1002 Bulbul Roy 4002 120 utca New Delhi 38000
1004 Saurabh Roy 4001 Utca 221 Mumbai 45000
1005 Shivani Singhania 4001 501 utca Kolkata 42000
1006 Avinash Sharma 4002 12 utca Delhi 28000
1007 Shyam Csókolsz 4003 202 utca Lucknow 35000

A következő lekérdezés a részleg rekordjait jeleníti meg a Department_Info táblából:

 SELECT * FROM Department_Info; 
Az IN használata SQL-ben

A következő lekérdezés IN operátort használ egy segédlekérdezéssel:

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

Ez a lekérdezés azoknak a karoknak a rekordját jeleníti meg, amelyeknek a Faculty_Info tábla Dept_ID-je megegyezik a Department_Info tábla Osztályazonosítójával.

Kimenet:

Kar_Id Kar_Keresztnév Kar_Vezetéknév Kar_Osztályazonosító Kar_címe Kar_Város Kar_Bérezés
1002 Bulbul Roy 4002 120 utca New Delhi 38000
1006 Avinash Sharma 4002 12 utca Delhi 28000
1007 Shyam Csókolsz 4003 202 utca Lucknow 35000

Mi NINCS IN az SQL-ben?

A NOT IN egy másik operátor a Structured Query Language-ben, amely éppen ellentétes az SQL IN operátorral. Lehetővé teszi azon értékek elérését a táblából, amelyek nem kerülnek át az IN operátor zárójelébe.

A NOT IN operátor használható az INSERT, UPDATE, SELECT és DELETE SQL lekérdezésekben.

A NOT IN operátor szintaxisa:

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

Ha a NOT IN operátort szeretné használni az SQL utasításaiban, akkor a megadott lépéseket ugyanabban a sorrendben kell végrehajtania:

  1. Hozzon létre egy adatbázist az SQL rendszerben.
  2. Hozzon létre egy új táblát az adatbázisban.
  3. Illessze be az adatokat a táblázatba!
  4. Tekintse meg a beszúrt adatokat
  5. Az adatok megtekintéséhez használja a NOT IN operátort.

Most minden lépést egyenként röviden elmagyarázunk a legjobb SQL-példával:

1. lépés: Hozza létre az egyszerű új adatbázist

jpa tavasszal

A következő lekérdezés létrehozza az újat Civil_Ipar Adatbázis az SQL szerveren:

 CREATE Database Industry; 

2. lépés: Új tábla létrehozása

A következő lekérdezés létrehozza a Worker_Info táblázat a Civil_Ipar Adatbázis:

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

3. lépés: Illessze be az értékeket

A következő INSERT lekérdezések beszúrják a dolgozók rekordjait a Worker_Info táblába:

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

4. lépés: Tekintse meg a táblázat adatait

A következő lekérdezés a Worker_Info tábla adatait jeleníti meg.

 SELECT * FROM Worker_Info; 

Worker_ID Worker_Name Worker_Gender Dolgozó_kor Dolgozó_címe Dolgozó_fizetés
1001 medve Férfi 18 Agra 35000
1002 Bulbul Női 18 Lucknow 42000
1004 Saurabh Férfi húsz Lucknow 45000
1005 Shivani Női 18 Agra 28000
1006 Avinash Férfi 22 Delhi 38000
1007 Shyam Férfi 18 Bangalore 20000

4. lépés: Használja a NOT IN operátort

A következő lekérdezés a NOT IN operátort használja numerikus adatokkal:

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

Ez a SELECT lekérdezés megjeleníti a kimenetben mindazokat a dolgozókat, akiknek a fizetését nem adja át a NOT IN operátor.

A fenti állítás eredménye a következő táblázatban látható:

Worker_ID Worker_Name Worker_Gender Dolgozó_kor Dolgozó_címe Dolgozó_fizetés
1002 Bulbul Női 18 Lucknow 42000
1004 Saurabh Férfi húsz Lucknow 45000
1007 Shyam Férfi 18 Bangalore 20000

A következő lekérdezés a NOT IN logikai operátort használja karakteres vagy szöveges értékekkel:

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

Ez a lekérdezés megjeleníti mindazon munkavállalók rekordját, akiknek a címe nem került átadásra a NOT IN operátorban.

Kimenet:

Worker_ID Worker_Name Worker_Gender Dolgozó_kor Dolgozó_címe Dolgozó_fizetés
1001 medve Férfi 18 Agra 35000
1005 Shivani Női 18 Agra 28000
1007 Shyam Férfi 18 Bangalore 20000