Contenido del Curso
SQL Intermedio
SQL Intermedio
UNIR 2 Tablas
¡Genial! Hemos captado la atención de una empresa que posee una pequeña tienda en línea. Tienen 2 tablas que están relacionadas entre sí. La primera tabla contiene información sobre los productos vendidos en la tienda en línea.
Así es como se ve la tabla product
:
La segunda tabla contiene categorías de productos en el sitio web, junto con una breve descripción para cada categoría.
Así es como se ve la tabla category
:
Trabajaremos con estas dos tablas.
Tenemos la primera tarea: unir estas 2 tablas y ver la cantidad de productos en cada categoría. Para hacerlo, utilizaremos una sentencia JOIN
.
Hagamos un descanso de la tarea principal y entendamos qué es una sentencia JOIN
y cómo usarla.
Para unir 2 tablas, deben tener una columna en común entre ellas. Consideremos el uso de JOIN
usando el ejemplo de las tablas employees
y department
. Les recordaré que su columna común es employees.department
y departments.name
.
Nota
Fíjate cómo escribí las columnas de estas tablas. Primero, escribo el nombre de la tabla, luego pongo un punto y el nombre de la columna. Cuando usamos más de una tabla en una consulta, necesitamos especificar la tabla de la cual estamos tomando la columna para hacer el código legible. Además, en el caso de que las tablas tengan columnas con el mismo nombre, necesitamos que SQL entienda a qué tabla y columna nos estamos refiriendo.
Establezcámonos la tarea de obtener el salario total para los empleados en cada tipo de departamento (tech
/non-tech
).
La consulta para lograr esta tarea se verá así:
SELECT department.type, SUM(employees.salary) AS total_salary FROM employees JOIN department ON employees.department = department.name GROUP BY department.type
Vamos a entender paso a paso lo que hicimos y cómo utilizamos JOIN
:
- En la sección
SELECT
, especificamos las columnas que necesitamos recuperar de dos tablas, indicando el nombre de la tabla al que pertenece la columna; - En la sección
JOIN
, especificamos la tabla que queremos unir, seguido de especificar la columna común. En nuestro caso, esemployees.department
ydepartment.name
; - Luego, agregamos los datos por
type
(ya que tenemos una función de agregaciónSUM()
en la secciónSELECT
para encontrar el salario total) y obtenemos el resultado que nos interesa.
La consulta puede parecer compleja, así que veamos la sintaxis general para usar JOIN
:
De esta manera, podemos unir tablas y obtener el resultado deseado, incluso si la información está dispersa en múltiples tablas.
Nota
A diferencia de la cláusula
UNION
, la instrucciónJOIN
nos permite combinar completamente las tablas, no solo las columnas comunes entre ellas. También es importante señalar que al usar la instrucciónJOIN
, no necesitamos utilizar subconsultas con cláusulas, como lo hacemos con la cláusulaUNION
.
Ahora volvamos a la tarea que tenemos entre manos y refuercemos nuestro conocimiento con práctica:
Swipe to show code editor
Tu tarea es unir las dos tablas: category
y product
. Las columnas comunes para estas dos tablas son product.category_id
y category.id
. Tu labor es encontrar el total de productos en cada categoría. Para hacerlo, necesitas calcular la suma de la columna product.amount
. ¡Utiliza el alias total_amount
para esta columna!
Al final de tu consulta, ordena el resultado por la columna total_amount
en orden ascendente.
En la respuesta, deberías tener 2 columnas: category.name
y total_amount
.
¡Buena suerte!
¡Gracias por tus comentarios!
UNIR 2 Tablas
¡Genial! Hemos captado la atención de una empresa que posee una pequeña tienda en línea. Tienen 2 tablas que están relacionadas entre sí. La primera tabla contiene información sobre los productos vendidos en la tienda en línea.
Así es como se ve la tabla product
:
La segunda tabla contiene categorías de productos en el sitio web, junto con una breve descripción para cada categoría.
Así es como se ve la tabla category
:
Trabajaremos con estas dos tablas.
Tenemos la primera tarea: unir estas 2 tablas y ver la cantidad de productos en cada categoría. Para hacerlo, utilizaremos una sentencia JOIN
.
Hagamos un descanso de la tarea principal y entendamos qué es una sentencia JOIN
y cómo usarla.
Para unir 2 tablas, deben tener una columna en común entre ellas. Consideremos el uso de JOIN
usando el ejemplo de las tablas employees
y department
. Les recordaré que su columna común es employees.department
y departments.name
.
Nota
Fíjate cómo escribí las columnas de estas tablas. Primero, escribo el nombre de la tabla, luego pongo un punto y el nombre de la columna. Cuando usamos más de una tabla en una consulta, necesitamos especificar la tabla de la cual estamos tomando la columna para hacer el código legible. Además, en el caso de que las tablas tengan columnas con el mismo nombre, necesitamos que SQL entienda a qué tabla y columna nos estamos refiriendo.
Establezcámonos la tarea de obtener el salario total para los empleados en cada tipo de departamento (tech
/non-tech
).
La consulta para lograr esta tarea se verá así:
SELECT department.type, SUM(employees.salary) AS total_salary FROM employees JOIN department ON employees.department = department.name GROUP BY department.type
Vamos a entender paso a paso lo que hicimos y cómo utilizamos JOIN
:
- En la sección
SELECT
, especificamos las columnas que necesitamos recuperar de dos tablas, indicando el nombre de la tabla al que pertenece la columna; - En la sección
JOIN
, especificamos la tabla que queremos unir, seguido de especificar la columna común. En nuestro caso, esemployees.department
ydepartment.name
; - Luego, agregamos los datos por
type
(ya que tenemos una función de agregaciónSUM()
en la secciónSELECT
para encontrar el salario total) y obtenemos el resultado que nos interesa.
La consulta puede parecer compleja, así que veamos la sintaxis general para usar JOIN
:
De esta manera, podemos unir tablas y obtener el resultado deseado, incluso si la información está dispersa en múltiples tablas.
Nota
A diferencia de la cláusula
UNION
, la instrucciónJOIN
nos permite combinar completamente las tablas, no solo las columnas comunes entre ellas. También es importante señalar que al usar la instrucciónJOIN
, no necesitamos utilizar subconsultas con cláusulas, como lo hacemos con la cláusulaUNION
.
Ahora volvamos a la tarea que tenemos entre manos y refuercemos nuestro conocimiento con práctica:
Swipe to show code editor
Tu tarea es unir las dos tablas: category
y product
. Las columnas comunes para estas dos tablas son product.category_id
y category.id
. Tu labor es encontrar el total de productos en cada categoría. Para hacerlo, necesitas calcular la suma de la columna product.amount
. ¡Utiliza el alias total_amount
para esta columna!
Al final de tu consulta, ordena el resultado por la columna total_amount
en orden ascendente.
En la respuesta, deberías tener 2 columnas: category.name
y total_amount
.
¡Buena suerte!
¡Gracias por tus comentarios!