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:
- Hozzon létre egy adatbázist SQL-ben.
- Hozza létre az új SQL-táblát.
- Illessze be az adatokat a táblázatba!
- Tekintse meg a beszúrt adatokat.
- 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;
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:
- Hozzon létre egy adatbázist az SQL rendszerben.
- Hozzon létre egy új táblát az adatbázisban.
- Illessze be az adatokat a táblázatba!
- Tekintse meg a beszúrt adatokat
- 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 |