logo

Com utilitzar IN a SQL

En aquest article SQL, aprendràs a utilitzar la paraula clau IN a les consultes de la base de dades SQL.

Què és la paraula clau IN a SQL?

El EN és un operador lògic en el llenguatge de consulta estructurat que permet als usuaris de la base de dades definir més d'un valor a la clàusula WHERE.

La clàusula WHERE amb l'operador IN mostra els registres del resultat que coincideixen amb el conjunt de valors donat. També podem especificar la subconsulta entre parèntesis de l'operador IN.

Podem utilitzar l'operador IN amb les consultes INSERT, SELECT, UPDATE i DELETE a la base de dades SQL.

L'operador IN a SQL substitueix el procés de múltiples condicions OR a les consultes.

Sintaxi de l'operador 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); 

Si voleu utilitzar l'operador IN a les sentències SQL, heu de seguir els passos que s'indiquen a continuació en la mateixa seqüència:

  1. Crear una base de dades en SQL.
  2. Creeu la nova taula SQL.
  3. Insereix les dades a la taula.
  4. Veure les dades inserides.
  5. Utilitzeu l'operador SQL IN per mostrar les dades de la taula.

Ara, explicarem breument cada pas un per un amb el millor exemple SQL:

Pas 1: creeu una nova base de dades senzilla

El primer pas és crear una nova base de dades en llenguatge de consulta estructurat.

La següent instrucció CREATE crea la nova Universitat_mecànica Base de dades al servidor SQL:

 CREATE Database Mechanical_College; 

Pas 2: creeu una taula nova

Ara, utilitzeu la següent sintaxi SQL que us ajuda a crear la nova taula a la base de dades:

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

La següent instrucció CREATE crea el Facultat_Informació taula a la Universitat_mecànica Base de dades:

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

Pas 3: inseriu les dades a la taula

Les consultes INSERT següents insereixen els registres de facultats a la taula 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); 

Pas 4: visualitzeu les dades inserides

La següent instrucció SELECT mostra les dades de la taula Faculty_Info:

 SELECT * FROM Faculty_Info; 

Facultat_Id Nom_de_la_facultat Cognom_de_facultat Id._dept Data_d'incorporació_de_facultat Facultat_Ciutat Facultat_Salari
1001 suportar Sharma 4001 2020-01-02 Delhi 20000
1002 Bulbul Roy 4002 2019-12-31 Delhi 38000
1004 Saurabh Roy 4001 2020-10-10 Bombai 45000
1005 Shivani Singhania 4001 2019-07-15 Calcuta 42000
1006 Avinash Sharma 4002 2019-11-11 Delhi 28000
1007 Shyam Petons 4003 2021-06-21 Lucknow 35000

Pas 5: Utilitzeu l'operador IN per veure les dades de la taula Faculty_Info de diferents maneres

La consulta següent utilitza valors numèrics amb l'operador 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); 

Aquesta consulta només mostra el registre d'aquelles Facultats el sou de les quals es passa a l'operador IN de la clàusula ON.

Sortida:

Facultat_Id Nom_de_la_facultat Id._dept Data_d'incorporació_de_facultat Facultat_Salari
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

La consulta següent utilitza valors de text o caràcters amb l'operador lògic IN:

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

Aquesta consulta només mostra el registre d'aquelles Facultats la ciutat de les quals s'inclou entre parèntesis de l'operador IN a la clàusula WHERE.

Sortida:

Facultat_Id Nom_de_la_facultat Data_d'incorporació_de_facultat Facultat_Ciutat
1004 Saurabh 2020-10-10 Bombai
1005 Shivani 2019-07-15 Calcuta
1007 Shyam 2021-06-21 Lucknow

La consulta següent utilitza el format DATE amb l'operador lògic 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); 

Aquesta consulta només mostra els registres de les facultats la data d'incorporació de les quals es passa a l'operador IN de la clàusula ON.

Sortida:

Facultat_Id Nom_de_la_facultat Id._dept Data_d'incorporació_de_facultat Facultat_Salari
1001 suportar 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

La consulta següent utilitza l'ordre SQL UPDATE amb l'operador lògic IN:

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

Aquesta consulta actualitza el salari d'aquelles Facultats el Dept_Id de les quals es passa a l'operador IN de la clàusula WHERE.

Per comprovar el resultat de la consulta anterior, escriviu la següent consulta SELECT a SQL:

 SELECT * FROM Faculty_Info; 
Facultat_Id Nom_de_la_facultat Cognom_de_facultat Id._dept Data_d'incorporació_de_facultat Facultat_Ciutat Facultat_Salari
1001 suportar Sharma 4001 2020-01-02 Delhi 20000
1002 Bulbul Roy 4002 2019-12-31 Delhi 50000
1004 Saurabh Roy 4001 2020-10-10 Bombai 45000
1005 Shivani Singhania 4001 2019-07-15 Calcuta 42000
1006 Avinash Sharma 4002 2019-11-11 Delhi 50000
1007 Shyam Petons 4003 2021-06-21 Lucknow 50000

Operador SQL IN amb subconsulta

En el llenguatge de consulta estructurat, també podem utilitzar la subconsulta amb l'operador lògic IN.

La sintaxi de l'operador IN amb subconsulta es mostra a continuació:

com esborrar la columna a postgresql
 SELECT Column_Name_1, Column_Name_2, Column_Name_3, ......, Column_Name_N FROM Table_Name WHERE Column_Name IN (Subquery); 

Si voleu entendre l'operador IN amb subconsulta, heu de crear les dues taules diferents al llenguatge de consulta estructurat mitjançant la instrucció CREATE.

La consulta següent crea la taula Faculty_Info a la base de dades:

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

La consulta següent crea el Departament_Informació taula a la base de dades:

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

Les consultes INSERT següents insereixen els registres de Facultats a la taula 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); 

Les consultes INSERT següents insereixen els registres dels departaments a la taula 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); 

La següent instrucció SELECT mostra les dades de la taula Faculty_Info:

 SELECT * FROM Faculty_Info; 

Facultat_Id Nom_de_la_facultat Cognom_de_facultat Id._dept Facultat_Adreça Facultat_Ciutat Facultat_Salari
1001 suportar Sharma 4001 Carrer 22 Nova Delhi 20000
1002 Bulbul Roy 4002 Carrer 120 Nova Delhi 38000
1004 Saurabh Roy 4001 Carrer 221 Bombai 45000
1005 Shivani Singhania 4001 Carrer 501 Calcuta 42000
1006 Avinash Sharma 4002 Carrer 12 Delhi 28000
1007 Shyam Petons 4003 Carrer 202 Lucknow 35000

La consulta següent mostra els registres del departament de la taula Department_Info:

 SELECT * FROM Department_Info; 
Com utilitzar IN a SQL

La consulta següent utilitza l'operador IN amb una subconsulta:

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

Aquesta consulta mostra el registre d'aquelles facultats la taula Dept_ID de Faculty_Info de les quals coincideix amb la Dept_Id de la taula Department_Info.

Sortida:

Facultat_Id Nom_de_la_facultat Cognom_de_facultat Id._dept Facultat_Adreça Facultat_Ciutat Facultat_Salari
1002 Bulbul Roy 4002 Carrer 120 Nova Delhi 38000
1006 Avinash Sharma 4002 Carrer 12 Delhi 28000
1007 Shyam Petons 4003 Carrer 202 Lucknow 35000

Què NO està IN a SQL?

El NOT IN és un altre operador del llenguatge de consulta estructurat, que és just oposat a l'operador SQL IN. Permet accedir a aquests valors des de la taula, que no passa entre parèntesis de l'operador IN.

L'operador NOT IN es pot utilitzar a les consultes SQL INSERT, UPDATE, SELECT i DELETE.

instal·lació de maven

Sintaxi de l'operador 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); 

Si voleu utilitzar l'operador NOT IN a les sentències d'SQL, heu de seguir els passos indicats en la mateixa seqüència:

  1. Crear una base de dades en el sistema SQL.
  2. Creeu la nova taula a la base de dades.
  3. Insereix les dades a la taula
  4. Veure les dades inserides
  5. Utilitzeu l'operador NOT IN per veure les dades.

Ara, explicarem breument cada pas un per un amb el millor exemple SQL:

Pas 1: creeu la nova base de dades simple

sincronitzar java

La consulta següent crea la nova Indústria_Civil Base de dades al servidor SQL:

 CREATE Database Industry; 

Pas 2: creeu la taula nova

La consulta següent crea el Informació_treballador taula a la Indústria_Civil Base de dades:

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

Pas 3: inseriu els valors

Les consultes INSERT següents insereixen els registres dels treballadors a la taula 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); 

Pas 4: visualitzeu les dades de la taula

La consulta següent mostra les dades de la taula Worker_Info.

 SELECT * FROM Worker_Info; 

ID_treballador Nom_treballador Treballador_Gènere Treballador_Edat Adreça_treballadora Treballador_Salari
1001 suportar Mascle 18 Agra 35000
1002 Bulbul Dona 18 Lucknow 42000
1004 Saurabh Mascle 20 Lucknow 45000
1005 Shivani Dona 18 Agra 28000
1006 Avinash Mascle 22 Delhi 38000
1007 Shyam Mascle 18 Bangalore 20000

Pas 4: Utilitzeu l'operador NOT IN

La consulta següent utilitza l'operador NOT IN amb dades numèriques:

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

Aquesta consulta SELECT mostra tots aquells treballadors a la sortida el salari dels quals no es passa a l'operador NOT IN.

El resultat de la declaració anterior es mostra a la taula següent:

ID_treballador Nom_treballador Treballador_Gènere Treballador_Edat Adreça_treballadora Treballador_Salari
1002 Bulbul Dona 18 Lucknow 42000
1004 Saurabh Mascle 20 Lucknow 45000
1007 Shyam Mascle 18 Bangalore 20000

La consulta següent utilitza l'operador lògic NOT IN amb valors de caràcter o text:

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

Aquesta consulta mostra el registre de tots aquells Treballadors l'adreça dels quals no es passa a l'operador NOT IN.

Sortida:

ID_treballador Nom_treballador Treballador_Gènere Treballador_Edat Adreça_treballadora Treballador_Salari
1001 suportar Mascle 18 Agra 35000
1005 Shivani Dona 18 Agra 28000
1007 Shyam Mascle 18 Bangalore 20000