logo

Cum se utilizează IN în SQL

Î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ță:

  1. Creați o bază de date în SQL.
  2. Creați noul tabel SQL.
  3. Introduceți datele în tabel.
  4. Vizualizați datele inserate.
  5. 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; 
Cum se utilizează IN în SQL

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ță:

  1. Creați o bază de date în sistemul SQL.
  2. Creați noul tabel în baza de date.
  3. Introduceți datele în tabel
  4. Vizualizați datele inserate
  5. 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