V tomto článku SQL sa dozviete, ako používať kľúčové slovo IN v dotazoch databázy SQL.
Čo je kľúčové slovo IN v SQL?
The IN je logický operátor v Structured Query Language, ktorý umožňuje užívateľom databázy definovať viac ako jednu hodnotu v klauzule WHERE.
Klauzula WHERE s operátorom IN zobrazuje tie záznamy vo výsledku, ktoré sa zhodujú s danou množinou hodnôt. Poddotaz môžeme zadať aj v zátvorke operátora IN.
Operátor IN môžeme použiť pri dopytoch INSERT, SELECT, UPDATE a DELETE v SQL databáze.
Operátor IN v SQL nahrádza proces viacerých podmienok OR v dotazoch.
Syntax operátora IN:
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);
Ak chcete použiť operátor IN v príkazoch SQL, musíte postupovať podľa krokov uvedených nižšie v rovnakom poradí:
- Vytvorte databázu v SQL.
- Vytvorte novú tabuľku SQL.
- Vložte údaje do tabuľky.
- Pozrite si vložené údaje.
- Na zobrazenie údajov tabuľky použite operátor SQL IN.
Teraz v krátkosti vysvetlíme každý krok jeden po druhom s najlepším príkladom SQL:
Krok 1: Vytvorte jednoduchú novú databázu
Prvým krokom je vytvorenie novej databázy v Structured Query Language.
pre slučku java
Nasledujúci príkaz CREATE vytvorí nový Mechanical_College Databáza na SQL serveri:
CREATE Database Mechanical_College;
Krok 2: Vytvorte novú tabuľku
Teraz použite nasledujúcu syntax SQL, ktorá pomáha pri vytváraní novej tabuľky v databáze:
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) );
Nasledujúci príkaz CREATE vytvorí Informácie o fakulte stôl v Mechanical_College Databáza:
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 );
Krok 3: Vložte údaje do tabuľky
Nasledujúce INSERT dotazy vkladajú záznamy fakúlt do tabuľky Faculty_Info:
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);
Krok 4: Zobrazte vložené údaje
Nasledujúci príkaz SELECT zobrazuje údaje tabuľky Faculty_Info:
SELECT * FROM Faculty_Info;
Fakulta_Id | Fakulta_First_Name | Fakulta_Priezvisko | Faculty_Dept_Id | Fakulta_Dátum pripojenia | Fakulta_Mesto | Fakultný_Plat |
---|---|---|---|---|---|---|
1001 | medveď | Sharma | 4001 | 2020-01-02 | Dillí | 20 000 |
1002 | Bulbul | Roy | 4002 | 2019-12-31 | Dillí | 38 000 |
1004 | Saurabh | Roy | 4001 | 2020-10-10 | Bombaj | 45 000 |
1005 | Shivani | Singhania | 4001 | 2019-07-15 | Kalkata | 42 000 |
1006 | Avinash | Sharma | 4002 | 2019-11-11 | Dillí | 28 000 |
1007 | Shyam | Bozkávaš | 4003 | 2021-06-21 | Lucknow | 35 000 |
Krok 5: Použite operátor IN na zobrazenie údajov tabuľky Faculty_Info rôznymi spôsobmi
Nasledujúci dotaz používa číselné hodnoty s operátorom IN:
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);
Tento dotaz zobrazí len záznam tých fakúlt, ktorých plat je odovzdaný v operátorovi IN klauzuly WHERE.
Výkon:
Fakulta_Id | Fakulta_First_Name | Faculty_Dept_Id | Fakulta_Dátum pripojenia | Fakultný_Plat |
---|---|---|---|---|
1002 | Bulbul | 4002 | 2019-12-31 | 38 000 |
1004 | Saurabh | 4001 | 2020-10-10 | 45 000 |
1005 | Shivani | 4001 | 2019-07-15 | 42 000 |
1007 | Shyam | 4003 | 2021-06-21 | 35 000 |
Nasledujúci dotaz používa textové alebo znakové hodnoty s logickým operátorom IN:
SELECT Faculty_Id, Faculty_First_Name, Faculty_Joining_Date, Faculty_City FROM Faculty_Info WHERE Faculty_City IN ( Mumbai, Kolkata, Lucknow);
Tento dotaz zobrazuje len záznamy tých fakúlt, ktorých mesto je v zátvorke operátora IN v klauzule WHERE.
Výkon:
Fakulta_Id | Fakulta_First_Name | Fakulta_Dátum pripojenia | Fakulta_Mesto |
---|---|---|---|
1004 | Saurabh | 2020-10-10 | Bombaj |
1005 | Shivani | 2019-07-15 | Kalkata |
1007 | Shyam | 2021-06-21 | Lucknow |
Nasledujúci dotaz používa formát DATE s logickým operátorom IN:
prepojený zoznam java
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);
Tento dotaz zobrazuje len tie záznamy fakúlt, ktorých dátum pripojenia je zadaný v operátore IN klauzuly WHERE.
Výkon:
Fakulta_Id | Fakulta_First_Name | Faculty_Dept_Id | Fakulta_Dátum pripojenia | Fakultný_Plat |
---|---|---|---|---|
1001 | medveď | 4001 | 2020-01-02 | 20 000 |
1004 | Saurabh | 4001 | 2020-10-10 | 45 000 |
1005 | Shivani | 4001 | 2019-07-15 | 42 000 |
1007 | Shyam | 4003 | 2021-06-21 | 35 000 |
Nasledujúci dotaz používa príkaz SQL UPDATE s logickým operátorom IN:
UPDATE Faculty_Info SET Faculty_Salary = 50000 WHERE Faculty_Dept_ID IN (4002, 4003);
Tento dotaz aktualizuje plat tých fakúlt, ktorých Dept_Id je odovzdané operátorovi IN klauzuly WHERE.
Ak chcete skontrolovať výsledok vyššie uvedeného dotazu, zadajte nasledujúci dotaz SELECT v SQL:
SELECT * FROM Faculty_Info;
Fakulta_Id | Fakulta_First_Name | Fakulta_Priezvisko | Faculty_Dept_Id | Fakulta_Dátum pripojenia | Fakulta_Mesto | Fakultný_Plat |
---|---|---|---|---|---|---|
1001 | medveď | Sharma | 4001 | 2020-01-02 | Dillí | 20 000 |
1002 | Bulbul | Roy | 4002 | 2019-12-31 | Dillí | 50 000 |
1004 | Saurabh | Roy | 4001 | 2020-10-10 | Bombaj | 45 000 |
1005 | Shivani | Singhania | 4001 | 2019-07-15 | Kalkata | 42 000 |
1006 | Avinash | Sharma | 4002 | 2019-11-11 | Dillí | 50 000 |
1007 | Shyam | Bozkávaš | 4003 | 2021-06-21 | Lucknow | 50 000 |
SQL IN operátor s poddotazom
V Structured Query Language môžeme použiť aj poddotaz s logickým operátorom IN.
Syntax operátora IN s poddotazom je uvedená nižšie:
SELECT Column_Name_1, Column_Name_2, Column_Name_3, ......, Column_Name_N FROM Table_Name WHERE Column_Name IN (Subquery);
Ak chcete pochopiť operátor IN s poddotazom, musíte vytvoriť dve rôzne tabuľky v štruktúrovanom jazyku dotazov pomocou príkazu CREATE.
Nasledujúci dotaz vytvorí tabuľku Faculty_Info v databáze:
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 );
Nasledujúci dotaz vytvorí Department_Info tabuľka v databáze:
CREATE TABLE Department_Info ( Dept_Id INT NOT NULL, Dept_Name Varchar(100), Head_Id INT );
Nasledujúce INSERT dotazy vkladajú záznamy fakúlt do tabuľky Faculty_Info:
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);
Nasledujúce INSERT dotazy vkladajú záznamy oddelení do tabuľky 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);
Nasledujúci príkaz SELECT zobrazuje údaje tabuľky Faculty_Info:
css zarovnanie textu
SELECT * FROM Faculty_Info;
Fakulta_Id | Fakulta_First_Name | Fakulta_Priezvisko | Faculty_Dept_Id | Fakulta_Adresa | Fakulta_Mesto | Fakultný_Plat |
---|---|---|---|---|---|---|
1001 | medveď | Sharma | 4001 | Ulica 22 | Nové Dillí | 20 000 |
1002 | Bulbul | Roy | 4002 | Ulica 120 | Nové Dillí | 38 000 |
1004 | Saurabh | Roy | 4001 | Ulica 221 | Bombaj | 45 000 |
1005 | Shivani | Singhania | 4001 | Ulica 501 | Kalkata | 42 000 |
1006 | Avinash | Sharma | 4002 | Ulica 12 | Dillí | 28 000 |
1007 | Shyam | Bozkávaš | 4003 | Ulica 202 | Lucknow | 35 000 |
Nasledujúci dotaz zobrazuje záznamy oddelenia z tabuľky Department_Info:
SELECT * FROM Department_Info;
Nasledujúci dotaz používa operátor IN s poddotazom:
SELECT * FROM Faculty_Info WHERE Faculty_Dept_Id IN ( Select Dept_Id FROM Department_Info WHERE Head_Id >= 1007);
Tento dotaz zobrazí záznam tých fakúlt, ktorých Dept_ID tabuľky Faculty_Info sa zhoduje s Dept_Id tabuľky Department_Info.
Výkon:
Fakulta_Id | Fakulta_First_Name | Fakulta_Priezvisko | Faculty_Dept_Id | Fakulta_Adresa | Fakulta_Mesto | Fakultný_Plat |
---|---|---|---|---|---|---|
1002 | Bulbul | Roy | 4002 | Ulica 120 | Nové Dillí | 38 000 |
1006 | Avinash | Sharma | 4002 | Ulica 12 | Dillí | 28 000 |
1007 | Shyam | Bozkávaš | 4003 | Ulica 202 | Lucknow | 35 000 |
Čo NIE JE IN v SQL?
NOT IN je ďalší operátor v Structured Query Language, ktorý je presne opačný ako operátor SQL IN. Umožňuje prístup k tým hodnotám z tabuľky, ktorá neprechádza v zátvorkách operátora IN.
Operátor NOT IN je možné použiť v SQL dotazoch INSERT, UPDATE, SELECT a DELETE.
Syntax operátora NOT IN:
premenovanie adresára v linuxe
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);
Ak chcete v príkazoch SQL použiť operátor NOT IN, musíte postupovať podľa uvedených krokov v rovnakom poradí:
- Vytvorte databázu v systéme SQL.
- Vytvorte novú tabuľku v databáze.
- Vložte údaje do tabuľky
- Pozrite si vložené údaje
- Na zobrazenie údajov použite operátor NOT IN.
Teraz v krátkosti vysvetlíme každý krok jeden po druhom s najlepším príkladom SQL:
Krok 1: Vytvorte jednoduchú novú databázu
Nasledujúci dotaz vytvorí nový Civil_Industry Databáza na SQL serveri:
CREATE Database Industry;
Krok 2: Vytvorte novú tabuľku
Nasledujúci dotaz vytvorí Worker_Info stôl v Civil_Industry Databáza:
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 );
Krok 3: Vložte hodnoty
Nasledujúce INSERT dotazy vkladajú záznamy pracovníkov do tabuľky Worker_Info:
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);
Krok 4: Zobrazte údaje tabuľky
Nasledujúci dotaz zobrazí údaje tabuľky Worker_Info.
sql poradie podľa dátumu
SELECT * FROM Worker_Info;
Worker_ID | Worker_Name | Worker_Gender | Worker_Vek | Worker_Address | Pracovník_plat |
---|---|---|---|---|---|
1001 | medveď | Muž | 18 | Agra | 35 000 |
1002 | Bulbul | Žena | 18 | Lucknow | 42 000 |
1004 | Saurabh | Muž | dvadsať | Lucknow | 45 000 |
1005 | Shivani | Žena | 18 | Agra | 28 000 |
1006 | Avinash | Muž | 22 | Dillí | 38 000 |
1007 | Shyam | Muž | 18 | Bangalore | 20 000 |
Krok 4: Použite operátor NOT IN
Nasledujúci dotaz používa operátor NOT IN s číselnými údajmi:
SELECT * FROM Worker_Info WHERE Worker_salary NOT IN (35000, 28000, 38000);
Tento dotaz SELECT zobrazuje všetkých pracovníkov vo výstupe, ktorých plat neprešiel operátorom NOT IN.
Výsledok vyššie uvedeného tvrdenia je uvedený v nasledujúcej tabuľke:
Worker_ID | Worker_Name | Worker_Gender | Worker_Vek | Worker_Address | Pracovník_plat |
---|---|---|---|---|---|
1002 | Bulbul | Žena | 18 | Lucknow | 42 000 |
1004 | Saurabh | Muž | dvadsať | Lucknow | 45 000 |
1007 | Shyam | Muž | 18 | Bangalore | 20 000 |
Nasledujúci dotaz používa logický operátor NOT IN so znakovými alebo textovými hodnotami:
SELECT * FROM Worker_Info WHERE Worker_Address NOT IN (Lucknow, Delhi);
Tento dotaz zobrazuje záznam všetkých pracovníkov, ktorých adresa nie je odovzdaná operátorom NOT IN.
Výkon:
Worker_ID | Worker_Name | Worker_Gender | Worker_Vek | Worker_Address | Pracovník_plat |
---|---|---|---|---|---|
1001 | medveď | Muž | 18 | Agra | 35 000 |
1005 | Shivani | Žena | 18 | Agra | 28 000 |
1007 | Shyam | Muž | 18 | Bangalore | 20 000 |