În acest articol SQL, veți învăța cum să utilizați cuvântul cheie IN în interogările bazei de date SQL.
Ce este cuvântul cheie IN în SQL?
The ÎN este un operator logic în Structured Query Language care permite utilizatorilor bazei de date să definească mai mult de o valoare în clauza WHERE.
Clauza WHERE cu operatorul IN arată acele înregistrări din rezultat care se potrivesc cu setul de valori dat. De asemenea, putem specifica subinterogarea în paranteza operatorului IN.
Putem folosi operatorul IN cu interogările INSERT, SELECT, UPDATE și DELETE din baza de date SQL.
tipărirea declarației în java
Operatorul IN din SQL înlocuiește procesul de condiții SAU multiple în interogări.
Sintaxa operatorului 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);
Dacă doriți să utilizați operatorul IN în instrucțiunile SQL, trebuie să urmați pașii de mai jos în aceeași secvență:
- Creați o bază de date în SQL.
- Creați noul tabel SQL.
- Introduceți datele în tabel.
- Vizualizați datele inserate.
- Utilizați operatorul SQL IN pentru a afișa datele tabelului.
Acum, vom explica pe scurt fiecare pas cu cel mai bun exemplu SQL:
Pasul 1: Creați o nouă bază de date simplă
Primul pas este crearea unei noi baze de date în Structured Query Language.
Următoarea instrucțiune CREATE creează noul Colegiul_Mecanic Baza de date pe server SQL:
CREATE Database Mechanical_College;
Pasul 2: Creați un nou tabel
Acum, utilizați următoarea sintaxă SQL care ajută la crearea noului tabel în baza de date:
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) );
Următoarea instrucțiune CREATE creează Facultate_Info masa în Colegiul_Mecanic Bază de date:
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 );
Pasul 3: Introduceți datele în tabel
Următoarele interogări INSERT inserează înregistrările facultăților în tabelul Faculty_Info:
medie vs medie
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);
Pasul 4: Vizualizați datele inserate
Următoarea instrucțiune SELECT afișează datele din tabelul Faculty_Info:
SELECT * FROM Faculty_Info;
Facultate_Id | Prenumele_facultății | Nume_Facultatea | Facultate_Dept_Id | Facultate_Data_Aderare | Facultatea_Oraș | Facultate_Salariu |
---|---|---|---|---|---|---|
1001 | urs | Sharma | 4001 | 2020-01-02 | Delhi | 20000 |
1002 | Bulbul | Roy | 4002 | 31-12-2019 | Delhi | 38000 |
1004 | Saurabh | Roy | 4001 | 2020-10-10 | Mumbai | 45000 |
1005 | Shivani | Singhania | 4001 | 15-07-2019 | Kolkata | 42000 |
1006 | Avinash | Sharma | 4002 | 2019-11-11 | Delhi | 28000 |
1007 | Shyam | Tu saruti | 4003 | 21-06-2021 | Lucknow | 35000 |
Pasul 5: Utilizați operatorul IN pentru a vizualiza datele din tabelul Faculty_Info în diferite moduri
Următoarea interogare folosește valori numerice cu operator 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);
Această interogare arată doar evidența acelor facultăți al căror salariu este trecut în operatorul IN al clauzei WHERE.
Ieșire:
Facultate_Id | Prenumele_facultății | Facultate_Dept_Id | Facultate_Data_Aderare | Facultate_Salariu |
---|---|---|---|---|
1002 | Bulbul | 4002 | 31-12-2019 | 38000 |
1004 | Saurabh | 4001 | 2020-10-10 | 45000 |
1005 | Shivani | 4001 | 15-07-2019 | 42000 |
1007 | Shyam | 4003 | 21-06-2021 | 35000 |
Următoarea interogare folosește valori text sau caractere cu operator logic IN:
SELECT Faculty_Id, Faculty_First_Name, Faculty_Joining_Date, Faculty_City FROM Faculty_Info WHERE Faculty_City IN ( Mumbai, Kolkata, Lucknow);
Această interogare arată doar înregistrarea acelor facultăți al căror oraș este inclus în paranteza operatorului IN din clauza WHERE.
Ieșire:
Facultate_Id | Prenumele_facultății | Facultate_Data_Aderare | Facultatea_Oraș |
---|---|---|---|
1004 | Saurabh | 2020-10-10 | Mumbai |
1005 | Shivani | 15-07-2019 | Kolkata |
1007 | Shyam | 21-06-2021 | Lucknow |
Următoarea interogare folosește format DATE cu operator logic IN:
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);
Această interogare arată doar acele înregistrări ale facultăților a căror dată de înscriere este trecută în operatorul IN al clauzei WHERE.
Ieșire:
Facultate_Id | Prenumele_facultății | Facultate_Dept_Id | Facultate_Data_Aderare | Facultate_Salariu |
---|---|---|---|---|
1001 | urs | 4001 | 2020-01-02 | 20000 |
1004 | Saurabh | 4001 | 2020-10-10 | 45000 |
1005 | Shivani | 4001 | 15-07-2019 | 42000 |
1007 | Shyam | 4003 | 21-06-2021 | 35000 |
Următoarea interogare folosește comanda SQL UPDATE cu operatorul logic IN:
UPDATE Faculty_Info SET Faculty_Salary = 50000 WHERE Faculty_Dept_ID IN (4002, 4003);
Această interogare actualizează salariul acelor facultăți al căror Dept_Id este trecut în operatorul IN al clauzei WHERE.
Pentru a verifica rezultatul interogării de mai sus, tastați următoarea interogare SELECT în SQL:
SELECT * FROM Faculty_Info;
Facultate_Id | Prenumele_facultății | Nume_Facultatea | Facultate_Dept_Id | Facultate_Data_Aderare | Facultatea_Oraș | Facultate_Salariu |
---|---|---|---|---|---|---|
1001 | urs | Sharma | 4001 | 2020-01-02 | Delhi | 20000 |
1002 | Bulbul | Roy | 4002 | 31-12-2019 | Delhi | 50000 |
1004 | Saurabh | Roy | 4001 | 2020-10-10 | Mumbai | 45000 |
1005 | Shivani | Singhania | 4001 | 15-07-2019 | Kolkata | 42000 |
1006 | Avinash | Sharma | 4002 | 2019-11-11 | Delhi | 50000 |
1007 | Shyam | Tu saruti | 4003 | 21-06-2021 | Lucknow | 50000 |
Operator SQL IN cu subinterogare
În Structured Query Language, putem folosi și subinterogarea cu operatorul logic IN.
Sintaxa operatorului IN cu subinterogare este prezentată mai jos:
SELECT Column_Name_1, Column_Name_2, Column_Name_3, ......, Column_Name_N FROM Table_Name WHERE Column_Name IN (Subquery);
Dacă doriți să înțelegeți operatorul IN cu subinterogare, trebuie să creați cele două tabele diferite în limbajul de interogare structurat folosind instrucțiunea CREATE.
Următoarea interogare creează tabelul Faculty_Info în baza de date:
ciclul de viață sdlc
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 );
Următoarea interogare creează Departament_Informații tabel din baza de date:
CREATE TABLE Department_Info ( Dept_Id INT NOT NULL, Dept_Name Varchar(100), Head_Id INT );
Următoarele interogări INSERT inserează înregistrările facultăților în tabelul 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);
Următoarele interogări INSERT inserează înregistrările departamentelor în tabelul 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);
Următoarea instrucțiune SELECT afișează datele din tabelul Faculty_Info:
SELECT * FROM Faculty_Info;
Facultate_Id | Prenumele_facultății | Nume_Facultatea | Facultate_Dept_Id | Facultate_Adresă | Facultatea_Oraș | Facultate_Salariu |
---|---|---|---|---|---|---|
1001 | urs | Sharma | 4001 | Strada 22 | New Delhi | 20000 |
1002 | Bulbul | Roy | 4002 | Strada 120 | New Delhi | 38000 |
1004 | Saurabh | Roy | 4001 | Strada 221 | Mumbai | 45000 |
1005 | Shivani | Singhania | 4001 | Strada 501 | Kolkata | 42000 |
1006 | Avinash | Sharma | 4002 | Strada 12 | Delhi | 28000 |
1007 | Shyam | Tu saruti | 4003 | Strada 202 | Lucknow | 35000 |
Următoarea interogare arată înregistrările departamentului din tabelul Department_Info:
SELECT * FROM Department_Info;
Următoarea interogare folosește operatorul IN cu o subinterogare:
SELECT * FROM Faculty_Info WHERE Faculty_Dept_Id IN ( Select Dept_Id FROM Department_Info WHERE Head_Id >= 1007);
Această interogare afișează înregistrarea acelor facultăți al căror tabel Dept_ID din Faculty_Info este corelat cu Dept_Id din tabelul Department_Info.
Ieșire:
Facultate_Id | Prenumele_facultății | Nume_Facultatea | Facultate_Dept_Id | Facultate_Adresă | Facultatea_Oraș | Facultate_Salariu |
---|---|---|---|---|---|---|
1002 | Bulbul | Roy | 4002 | Strada 120 | New Delhi | 38000 |
1006 | Avinash | Sharma | 4002 | Strada 12 | Delhi | 28000 |
1007 | Shyam | Tu saruti | 4003 | Strada 202 | Lucknow | 35000 |
Ce NU este IN în SQL?
NOT IN este un alt operator în Structured Query Language, care este chiar opus operatorului SQL IN. Vă permite să accesați acele valori din tabel, care nu trece în paranteza operatorului IN.
Operatorul NOT IN poate fi utilizat în interogările SQL INSERT, UPDATE, SELECT și DELETE.
Sintaxa operatorului NOT IN:
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);
Dacă doriți să utilizați operatorul NOT IN în instrucțiunile SQL, trebuie să urmați pașii dați în aceeași secvență:
- Creați o bază de date în sistemul SQL.
- Creați noul tabel în baza de date.
- Introduceți datele în tabel
- Vizualizați datele inserate
- Utilizați operatorul NOT IN pentru a vizualiza datele.
Acum, vom explica pe scurt fiecare pas cu cel mai bun exemplu SQL:
Pasul 1: Creați noua bază de date simplă
cadru de colecție java
Următoarea interogare creează noua Industria_civilă Baza de date pe server SQL:
CREATE Database Industry;
Pasul 2: Creați tabelul nou
Următoarea interogare creează Lucrător_Informații masa în Industria_civilă Bază de date:
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 );
Pasul 3: Introduceți valorile
Următoarele interogări INSERT inserează înregistrările lucrătorilor în tabelul 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);
Pasul 4: Vizualizați datele tabelului
Următoarea interogare afișează datele din tabelul Worker_Info.
citind dintr-un fișier csv în java
SELECT * FROM Worker_Info;
ID-ul lucrător | Nume_lucrător | Lucrător_Gen | Vârsta_lucrătorului | Adresa_lucrătorului | Lucrător_Salariu |
---|---|---|---|---|---|
1001 | urs | Masculin | 18 | Agra | 35000 |
1002 | Bulbul | Femeie | 18 | Lucknow | 42000 |
1004 | Saurabh | Masculin | douăzeci | Lucknow | 45000 |
1005 | Shivani | Femeie | 18 | Agra | 28000 |
1006 | Avinash | Masculin | 22 | Delhi | 38000 |
1007 | Shyam | Masculin | 18 | Bangalore | 20000 |
Pasul 4: Utilizați operatorul NOT IN
Următoarea interogare folosește operatorul NOT IN cu date numerice:
SELECT * FROM Worker_Info WHERE Worker_salary NOT IN (35000, 28000, 38000);
Această interogare SELECT arată toți acei lucrători din ieșire al căror salariu nu este trecut în operatorul NOT IN.
Rezultatul afirmației de mai sus este prezentat în următorul tabel:
ID-ul lucrător | Nume_lucrător | Lucrător_Gen | Vârsta_lucrătorului | Adresa_lucrătorului | Lucrător_Salariu |
---|---|---|---|---|---|
1002 | Bulbul | Femeie | 18 | Lucknow | 42000 |
1004 | Saurabh | Masculin | douăzeci | Lucknow | 45000 |
1007 | Shyam | Masculin | 18 | Bangalore | 20000 |
Următoarea interogare folosește operatorul logic NOT IN cu valori de caractere sau text:
SELECT * FROM Worker_Info WHERE Worker_Address NOT IN (Lucknow, Delhi);
Această interogare arată înregistrarea tuturor acelor Lucrători a căror adresă nu este transmisă în operatorul NOT IN.
Ieșire:
ID-ul lucrător | Nume_lucrător | Lucrător_Gen | Vârsta_lucrătorului | Adresa_lucrătorului | Lucrător_Salariu |
---|---|---|---|---|---|
1001 | urs | Masculin | 18 | Agra | 35000 |
1005 | Shivani | Femeie | 18 | Agra | 28000 |
1007 | Shyam | Masculin | 18 | Bangalore | 20000 |