Diferencia entre la cláusula JOIN, IN y EXISTS en SQL

SEQUEL, ampliamente conocido como SQL, el lenguaje de consulta estructurado es el lenguaje estándar más popular para trabajar en bases de datos. Podemos realizar toneladas de operaciones usando SQL, lo que incluye crear una base de datos, almacenar datos en forma de tablas, modificar, extraer y mucho más. Hay diferentes versiones de SQL como MYSQL, PostgreSQL, Oracle, SQL lite, etc. Hay algunos comandos importantes en SQL que pueden clasificarse ampliamente en DDL, DML, DCL, TCL, DQL. 

En este artículo vamos a diferenciar entre los tres comandos más utilizados en SQL:

  • EN
  • EXISTE
  • UNIRSE

1. IN OPERATOR: se usa principalmente con la cláusula WHERE para probar una expresión determinada o un registro que coincida con un valor particular de un conjunto de valores. Funciona como un operador OR múltiple. La negación del operador IN NO ES IN, lo que ayuda a ejecutar las filas que no coinciden con el conjunto de valores. 

Sintaxis:

SELECCIONE col_name(s)

DESDE Table_name

DONDE nombre_col IN(val1, val2, val3, …..)

Donde col_name es el nombre de la(s) columna(s) y val es el conjunto de valores

Ejemplo: 

         Estudiante friki
Stud_ID Nombre Ubicación
1 Rohit Guwahati
2 neha patna
3 Ramesh Noida
4 Jignesh Ahmedabad
5 Raj Guwahati

Para obtener los detalles de los ESTUDIANTES provenientes de Guwahati y Patna:

2. OPERADOR EXISTE : Se utiliza principalmente en la consulta anidada (consulta dentro de una consulta). Se utiliza para comprobar la existencia del registro proporcionado en la subconsulta. Devuelve Boolean TRUE si uno o más registros coinciden; de lo contrario, FALSE cuando no coincide ninguna fila. De manera similar, al igual que el operador IN, aquí también podemos usar la negación de EXISTS conocida como el operador «NO EXISTS».

Sintaxis: 

SELECCIONE col_name(s) 

DESDE Table_Name

DONDE EXISTE 

(SELECCIONE col_name(s) 

DESDE Table_Name

DONDE condición);

Where condition: la condición también debe contener información de coincidencia de columnas con un atributo común si se usan dos o más tablas.

Ejemplo:

Tabla de compras:

Tabla de clientes:

Para obtener los detalles del NOMBRE y la DIRECCIÓN DE CORREO ELECTRÓNICO de los clientes que compraron un teléfono móvil en un sitio de comercio electrónico.

3. JOIN : Se utiliza para concatenar tuplas o filas de dos o más tablas sobre la base de alguna columna coincidente. Devuelve un valor NULL si alguna entrada no coincide en ambas tablas. Hay básicamente cuatro tipos de JOINS presentes en SQL:

  1. INNER JOIN: se devuelven los valores que coinciden en ambas tablas.
  2. UNIÓN IZQUIERDA: Todos los registros en la tabla de la izquierda (Tabla 1) y las filas coincidentes en la tabla de la derecha (Tabla 2).
  3. RIGHT JOIN: todos los registros en la tabla de la derecha (Tabla 2) y las filas coincidentes en la tabla de la izquierda (Tabla 1).
  4. UNIÓN EXTERNA COMPLETA: todos los registros coincidentes de Table1 o Table2.

Sintaxis:

SELECCIONE * DE la Tabla1

(JOIN_TYPE) Tabla 2

ON Tabla1.col_match = Tabla2.col_match

Donde, JOIN_TYPE es el tipo de JOIN para realizar, ya sea INTERIOR, IZQUIERDA, DERECHA, COMPLETA. Y col_match son las columnas coincidentes en ambas tablas.

Para las mismas tablas anteriores ‘Información de compra’ , ‘Información del cliente’ , veamos qué realizan los diferentes operadores JOIN:

  • Usando UNIÓN INTERNA:

  • Usando la UNIÓN IZQUIERDA:

  • Usando la UNIÓN DERECHA:

  • Usando la UNIÓN COMPLETA:

Diferencia entre la cláusula JOIN, IN y EXISTS en SQL

EN 

EXISTE 

UNIONES

Funciona como un operador OR múltiple. Por lo tanto, nos exime de escribir OR varias veces en una consulta. Devuelve el valor VERDADERO si se encuentra una coincidencia. Se utiliza para unir dos o más tablas en una sola tabla.
Se escanearán todos los valores dentro del operador IN y luego se tomará una decisión. Si obtenemos el valor VERDADERO para una sola condición, detendrá su ejecución. Primero verificará si la coincidencia se lleva a cabo o no y luego unirá las dos tablas sobre la base de las columnas coincidentes en ambas tablas.
Devuelve valores VERDADERO, FALSO y NULO. Devuelve VERDADERO o FALSO. Devuelve una entrada NULL en la tabla unida si la coincidencia no está presente.
Se puede utilizar tanto en consultas anidadas como con valores como hemos visto en el ejemplo anterior. Solo se usa en consultas anidadas.  JOIN también se puede usar con consultas anidadas.
Es menos eficiente cuando se usa IN con subconsulta porque toda la subconsulta se ejecutará primero por la base de datos relacional y luego la ejecución final tendrá lugar en función de la condición especificada. Sin embargo, para una tabla relacional más grande, IN podría funcionar más rápido que EXISTS y JOIN en la subconsulta. En caso de EXISTE, sabemos que devolverá VERDADERO o FALSO según la condición especificada por el usuario. Por lo tanto, para una entrada de tabla pequeña en la subconsulta EXISTS funciona de manera más eficiente que IN. Es similar al operador EXISTS. Si la tabla de subconsultas tiene relativamente menos datos, la ejecución será más eficiente en comparación con IN.

Publicación traducida automáticamente

Artículo escrito por rishabhchakrabortygfg y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *