logo

Cómo utilizar IN en SQL

En este artículo de SQL, aprenderá cómo utilizar la palabra clave IN en las consultas de la base de datos SQL.

¿Qué es la palabra clave IN en SQL?

El EN es un operador lógico en el lenguaje de consulta estructurado que permite a los usuarios de la base de datos definir más de un valor en la cláusula WHERE.

La cláusula WHERE con el operador IN muestra aquellos registros en el resultado que coinciden con el conjunto de valores dado. También podemos especificar la subconsulta entre paréntesis del operador IN.

comandos de Linux que

Podemos utilizar el operador IN con las consultas INSERT, SELECT, UPDATE y DELETE en la base de datos SQL.

El operador IN en SQL reemplaza el proceso de múltiples condiciones OR en las consultas.

Sintaxis del 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 desea utilizar el operador IN en las declaraciones SQL, debe seguir los pasos que se detallan a continuación en la misma secuencia:

  1. Crear una base de datos en SQL.
  2. Cree la nueva tabla SQL.
  3. Inserta los datos en la tabla.
  4. Ver los datos insertados.
  5. Utilice el operador SQL IN para mostrar los datos de la tabla.

Ahora, vamos a explicar brevemente cada paso uno por uno con el mejor ejemplo de SQL:

Paso 1: crear una nueva base de datos sencilla

El primer paso es crear una nueva base de datos en lenguaje de consulta estructurado.

La siguiente declaración CREATE crea el nuevo colegio_mecanico Base de datos en servidor SQL:

 CREATE Database Mechanical_College; 

Paso 2: crea una nueva tabla

Ahora, utilice la siguiente sintaxis SQL que le ayudará a crear la nueva tabla en la base de datos:

 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 siguiente declaración CREATE crea el Información_facultad mesa en el colegio_mecanico Base de datos:

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

Paso 3: inserte los datos en la tabla

Las siguientes consultas INSERT insertan los registros de Facultades en la tabla 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); 

Paso 4: ver los datos insertados

La siguiente instrucción SELECT muestra los datos de la tabla Faculty_Info:

 SELECT * FROM Faculty_Info; 

Id_facultad Facultad_primer_nombre Facultad_Apellido ID_departamento_facultad Facultad_Fecha_de_incorporación Facultad_Ciudad Facultad_Salario
1001 oso sharma 4001 2020-01-02 Delhi 20000
1002 bulbul roy 4002 2019-12-31 Delhi 38000
1004 Saurabh roy 4001 2020-10-10 Bombay 45000
1005 Shivani Singhania 4001 2019-07-15 Calcuta 42000
1006 avinash sharma 4002 2019-11-11 Delhi 28000
1007 sham Besas 4003 2021-06-21 Lucknow 35000

Paso 5: Utilice el operador IN para ver los datos de la tabla Faculty_Info de diferentes maneras

La siguiente consulta utiliza valores numéricos con el 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); 

Esta consulta muestra únicamente el registro de aquellas Facultades cuyo salario se pasa en el operador IN de la cláusula WHERE.

Producción:

Id_facultad Facultad_primer_nombre ID_departamento_facultad Facultad_Fecha_de_incorporación Facultad_Salario
1002 bulbul 4002 2019-12-31 38000
1004 Saurabh 4001 2020-10-10 45000
1005 Shivani 4001 2019-07-15 42000
1007 sham 4003 2021-06-21 35000

La siguiente consulta utiliza valores de texto o caracteres con el operador lógico IN:

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

Esta consulta muestra únicamente el registro de aquellas Facultades cuya ciudad está incluida entre paréntesis del operador IN en la cláusula WHERE.

Producción:

Id_facultad Facultad_primer_nombre Facultad_Fecha_de_incorporación Facultad_Ciudad
1004 Saurabh 2020-10-10 Bombay
1005 Shivani 2019-07-15 Calcuta
1007 sham 2021-06-21 Lucknow

La siguiente consulta utiliza el formato DATE con el operador lógico 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); 

Esta consulta muestra solo aquellos registros de Facultades cuya fecha de incorporación se pasa en el operador IN de la cláusula WHERE.

Producción:

Id_facultad Facultad_primer_nombre ID_departamento_facultad Facultad_Fecha_de_incorporación Facultad_Salario
1001 oso 4001 2020-01-02 20000
1004 Saurabh 4001 2020-10-10 45000
1005 Shivani 4001 2019-07-15 42000
1007 sham 4003 2021-06-21 35000

La siguiente consulta utiliza el comando SQL UPDATE con el operador lógico IN:

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

Esta consulta actualiza el salario de aquellas Facultades cuyo Dept_Id se pasa en el operador IN de la cláusula WHERE.

Para verificar el resultado de la consulta anterior, escriba la siguiente consulta SELECT en SQL:

 SELECT * FROM Faculty_Info; 
Id_facultad Facultad_primer_nombre Facultad_Apellido ID_departamento_facultad Facultad_Fecha_de_incorporación Facultad_Ciudad Facultad_Salario
1001 oso sharma 4001 2020-01-02 Delhi 20000
1002 bulbul roy 4002 2019-12-31 Delhi 50000
1004 Saurabh roy 4001 2020-10-10 Bombay 45000
1005 Shivani Singhania 4001 2019-07-15 Calcuta 42000
1006 avinash sharma 4002 2019-11-11 Delhi 50000
1007 sham Besas 4003 2021-06-21 Lucknow 50000

Operador SQL IN con subconsulta

En lenguaje de consulta estructurado, también podemos utilizar la subconsulta con el operador lógico IN.

La sintaxis del operador IN con subconsulta se proporciona a continuación:

función de subcadena java
 SELECT Column_Name_1, Column_Name_2, Column_Name_3, ......, Column_Name_N FROM Table_Name WHERE Column_Name IN (Subquery); 

Si desea comprender el operador IN con subconsulta, debe crear dos tablas diferentes en el lenguaje de consulta estructurado utilizando la instrucción CREATE.

La siguiente consulta crea la tabla Faculty_Info en la base de datos:

 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 siguiente consulta crea el Información_departamento tabla en la base de datos:

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

Las siguientes consultas INSERT insertan los registros de Facultades en la tabla 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); 

Las siguientes consultas INSERT insertan los registros de los departamentos en la tabla Department_Info:

convertir objeto java a json
 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 siguiente instrucción SELECT muestra los datos de la tabla Faculty_Info:

 SELECT * FROM Faculty_Info; 

Id_facultad Facultad_primer_nombre Facultad_Apellido ID_departamento_facultad Dirección_facultad Facultad_Ciudad Facultad_Salario
1001 oso sharma 4001 Calle 22 Nueva Delhi 20000
1002 bulbul roy 4002 Calle 120 Nueva Delhi 38000
1004 Saurabh roy 4001 Calle 221 Bombay 45000
1005 Shivani Singhania 4001 Calle 501 Calcuta 42000
1006 avinash sharma 4002 Calle 12 Delhi 28000
1007 sham Besas 4003 Calle 202 Lucknow 35000

La siguiente consulta muestra los registros del departamento de la tabla Department_Info:

 SELECT * FROM Department_Info; 
Cómo utilizar IN en SQL

La siguiente consulta utiliza el operador IN con una subconsulta:

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

Esta consulta muestra el registro de aquellas facultades cuya tabla Dept_ID de Faculty_Info coincide con la tabla Dept_Id de Department_Info.

Producción:

Id_facultad Facultad_primer_nombre Facultad_Apellido ID_departamento_facultad Dirección_facultad Facultad_Ciudad Facultad_Salario
1002 bulbul roy 4002 Calle 120 Nueva Delhi 38000
1006 avinash sharma 4002 calle 12 Delhi 28000
1007 sham Besas 4003 Calle 202 Lucknow 35000

¿Qué NO está EN SQL?

NOT IN es otro operador en el lenguaje de consulta estructurado, que es justo lo opuesto al operador SQL IN. Le permite acceder a esos valores de la tabla, que no pasan entre paréntesis del operador IN.

El operador NOT IN se puede utilizar en las consultas SQL INSERTAR, ACTUALIZAR, SELECCIONAR y ELIMINAR.

Sintaxis del 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 desea utilizar el operador NOT IN en las declaraciones de SQL, debe seguir los pasos indicados en la misma secuencia:

  1. Crear una base de datos en el sistema SQL.
  2. Cree la nueva tabla en la base de datos.
  3. Insertar los datos en la tabla.
  4. Ver los datos insertados
  5. Utilice el operador NOT IN para ver los datos.

Ahora, vamos a explicar brevemente cada paso uno por uno con el mejor ejemplo de SQL:

Paso 1: cree la nueva base de datos simple

amontonar ordenar

La siguiente consulta crea el nuevo Industria_civil Base de datos en servidor SQL:

 CREATE Database Industry; 

Paso 2: crea la nueva tabla

La siguiente consulta crea el Información_trabajador mesa en el Industria_civil Base de datos:

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

Paso 3: inserte los valores

Las siguientes consultas INSERT insertan los registros de los trabajadores en la tabla 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); 

Paso 4: ver los datos de la tabla

La siguiente consulta muestra los datos de la tabla Worker_Info.

 SELECT * FROM Worker_Info; 

ID_trabajador Nombre_Trabajador Trabajador_Género Edad_del_trabajador Dirección_trabajador Trabajador_salario
1001 oso Masculino 18 Agra 35000
1002 bulbul Femenino 18 Lucknow 42000
1004 Saurabh Masculino 20 Lucknow 45000
1005 Shivani Femenino 18 Agra 28000
1006 avinash Masculino 22 Delhi 38000
1007 sham Masculino 18 Bangalore 20000

Paso 4: Utilice el operador NOT IN

La siguiente consulta utiliza el operador NOT IN con datos numéricos:

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

Esta consulta SELECT muestra todos aquellos trabajadores de la salida cuyo salario no se pasa en el operador NOT IN.

El resultado de la afirmación anterior se muestra en la siguiente tabla:

ID_trabajador Nombre_Trabajador Trabajador_Género Edad_del_trabajador Dirección_trabajador Trabajador_salario
1002 bulbul Femenino 18 Lucknow 42000
1004 Saurabh Masculino 20 Lucknow 45000
1007 sham Masculino 18 Bangalore 20000

La siguiente consulta utiliza el operador lógico NOT IN con valores de caracteres o texto:

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

Esta consulta muestra el registro de todos aquellos Trabajadores cuya dirección no se pasa en el operador NOT IN.

Producción:

ID_trabajador Nombre_Trabajador Trabajador_Género Edad_del_trabajador Dirección_trabajador Trabajador_salario
1001 oso Masculino 18 Agra 35000
1005 Shivani Femenino 18 Agra 28000
1007 sham Masculino 18 Bangalore 20000