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:
- Crear una base de dades en SQL.
- Creeu la nova taula SQL.
- Insereix les dades a la taula.
- Veure les dades inserides.
- 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;
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:
- Crear una base de dades en el sistema SQL.
- Creeu la nova taula a la base de dades.
- Insereix les dades a la taula
- Veure les dades inserides
- 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 |