Introducción
SQL Joins puede ser un concepto complicado de dominar para principiantes. Si no ha estudiado programación antes, es posible que tenga dificultades para entender qué combinaciones están en SQL y los diferentes tipos de uniones.
Pero como aspirante o profesional de la ciencia de datos, debe tener un conocimiento sólido de lo que son las uniones SQL y cómo funcionan. Créame, lo usará mucho si la industria de la ciencia de datos recupera y manipula rápidamente los datos presentes en diferentes tablas.
En este artículo, mostraré que las uniones SQL son realmente fáciles de aprender. Primero entenderemos qué son las uniones SQL y luego veremos los cuatro tipos diferentes de uniones que necesitará dominar.
¿Quiere aprender los conceptos básicos de lo que es SQL y cómo se puede aplicar en la ciencia de datos? Mira el curso popular SQL para ciencia de datos.
¿Qué son las uniones SQL?
Primero respondamos la pregunta del millón de dólares antes de ver los diferentes tipos de combinaciones en SQL.
Tomaré un ejemplo intuitivo para explicar qué son las uniones SQL. Considere estas dos colecciones:
Digamos que el círculo azul representa el conjunto de todos los niños (NIÑOS) y el gris representa el conjunto de personas que aman ver jugar a Messi (MESSI). ¿Cómo procedería si quisiéramos el conjunto de todos los chicos a los que les encanta ver jugar a Messi?
Hay una forma muy procedimental de abordar este problema:
- Primero, seleccione todos los identificadores distintos de la tabla de Messi que representan la consulta interna a continuación
- Toma cada identificación de la tabla Boys y compárala con este conjunto.
- Si la identificación coincide con cualquiera de ellos, entonces genere esa fila de la tabla Boys
Esto es bastante similar al concepto de ‘bucle for’ y se denomina sub-selección en SQL.
SELECT * FROM BOYS WHERE id IS IN (SELECT DISTINCT id FROM MESSI);
Pero en SQL, hay otra forma de abordar este problema.
Para comenzar a comprender las combinaciones, primero debemos tener una perspectiva diferente sobre lo que realmente queremos. En terminología establecida: queremos el intersección de BOYS y MESSI. En términos gráficos, esto se expresa como:
Estamos interesados en la parte celeste, ¿verdad? Esta parte, o la interno parte (pista), son todos los chicos que aman ver a Messi. Todo lo que tenemos que hacer ahora es expresar esto en SQL:
SELECT * FROM BOYS INNER JOIN MESSI ON BOYS.id = MESSI.id;
Mira lo que el (interno) unirse hace? ¡No podría ser más sencillo! Este es el enfoque intuitivo sobre cómo entender las combinaciones.
Nota: Los diagramas de Venn no se aplican directamente a SQL porque los elementos de las colecciones (las tablas) no son idénticos. Pero debido a que se refieren entre sí, podemos usar los diagramas de Venn para comprender mejor el concepto.
Diferentes tipos de combinaciones en SQL
Ahora. Extenderemos esto al panorama general y aprenderemos sobre los diferentes tipos de uniones SQL. Considere las siguientes tablas de muestra:
1. INNER JOIN en SQL
Esto es lo que cubrimos en la sección anterior. Inner Join devuelve registros que tienen valores coincidentes en ambas tablas:
Veamos cuál es la salida usando el ejemplo anterior:
SELECT * FROM BOYS INNER JOIN MESSI ON BOYS.id = MESSI.id;
PRODUCCIÓN:
Como mencioné anteriormente, la combinación interna da la intersección de dos tablas, es decir, filas que son comunes en ambas tablas.
2. UNIÓN DERECHA (externa) en SQL
Supongamos que queremos la identificación y el nombre de todas las personas a las que les encanta ver jugar a Messi. Obviamente, hay muchas formas de escribir esta consulta, pero lo entenderemos con la ayuda de uniones.
Veamos cuál es la salida:
SELECT * FROM BOYS RIGHT JOIN MESSI ON BOYS.id = MESSI.id;
PRODUCCIÓN:
¿Puedes averiguar qué pasó aquí? La unión externa derecha nos da las filas que son comunes en ambas tablas, así como filas adicionales de la tabla de Messi que no están presentes en la intersección. En otras palabras, una combinación derecha devuelve todos los registros de la tabla derecha y los registros coincidentes de la tabla izquierda.
3. LEFT (Outer) JOIN en SQL
Digamos que queremos la lista de todos los chicos a los que les encanta ver jugar a Messi y no les encanta ver a Messi jugar usando joins.
Quiero que adivines el resultado final antes de seguir leyendo.
SELECT * FROM BOYS LEFT JOIN MESSI ON BOYS.id = MESSI.id;
PRODUCCIÓN:
La combinación externa izquierda nos da las filas que son comunes en ambas tablas, así como filas adicionales de la tabla Boys que no están presentes en la intersección. En otras palabras, una combinación izquierda devuelve todos los registros de la tabla izquierda y los registros coincidentes de la tabla derecha.
4. Unión completa (EXTERIOR) en SQL
Por último, digamos que queremos la lista de todas las personas, incluidos los niños a los que les encanta ver jugar a Messi.
¡Estoy seguro de que ya conoces la respuesta a estas alturas!
SELECT * FROM BOYS FULL OUTER JOIN MESSI ON BOYS.id = MESSI.id;
PRODUCCIÓN:
¡Perfecto! Una combinación externa completa nos da las filas que son comunes en ambas tablas, así como filas adicionales de ambas tablas que no están presentes en la intersección. Obtenemos todos los registros cuando hay una coincidencia en la tabla izquierda o derecha.
Notas finales
¿Quiere aprender cómo se puede utilizar SQL en la ciencia de datos? Recomiendo encarecidamente echar un vistazo a este increíble curso: Lenguaje de consulta estructurado (SQL) para ciencia de datos.
Si tiene alguna pregunta o comentario sobre este artículo, hágamelo saber en la sección de comentarios a continuación y estaré encantado de conectarme con usted.