Resumen de la actividad
Como analista de seguridad, con frecuencia te darás cuenta de que necesitas datos de más de una tabla.
Anteriormente, aprendiste que una base de datos relacional es una base de datos estructurada que contiene tablas relacionadas entre sí.
Las uniones de SQL te permiten combinar tablas que tienen una columna en común. Esto es útil cuando debes conectar información que aparece en tablas diferentes.
En este lab, usarás uniones de SQL para conectar tablas separadas y recuperar la información que necesites.
Prepárate para aplicar lo que aprendiste. ¡A unir datos!
Nota: Los términos fila y registro se usan indistintamente en este lab.
Situación
En esta situación, investigarás un incidente de seguridad reciente que afectó a algunas máquinas.
Tu objetivo es obtener de la base de datos la información necesaria para la investigación.
Estos son los pasos que seguirás: En primer lugar, usarás una unión interna para identificar cuáles son las máquinas que usa cada empleado. En segundo lugar, usarás uniones derechas o izquierdas para identificar las máquinas que no pertenezcan a ningún usuario en particular, así como los usuarios que no tienen ninguna máquina específica asignada. Finalmente, usarás una unión interna para obtener una lista de todos los intentos de acceso que realizaron los empleados.
Ya tienes todo listo para unir tablas en SQL.
Nota: En este lab, trabajarás con la base de datos organization database (base de datos de una organización) y las tablas que contiene.
El lab comienza con la base de datos de la organización en la shell MariaDB que ya está abierta. Esto significa que puedes comenzar con las tareas en cuanto hagas clic en el botón Comenzar lab.
Si sales de manera accidental de la base de datos de la organización en la shell MariaDB, puedes ejecutar el comando sudo mysql organization para volver a conectarte.
Renuncia de responsabilidad: Para obtener un rendimiento y una compatibilidad óptimos, se recomienda que uses los navegadores Google Chrome o Mozilla Firefox para acceder a los labs.
Comienza el lab
Para poder acceder a los materiales, primero debes comenzar el lab. Para ello, haz clic en el botón "Comenzar lab" en la parte superior de la pantalla.

Después de presionar el botón Comenzar lab, verás una shell en la que realizarás otros pasos del lab. Deberías tener una shell como la siguiente:

Cuando hayas completado todas las tareas, consulta la sección Finaliza el lab para obtener información sobre cómo terminar el lab.
Tarea 1: Une a los empleados con sus máquinas
En primer lugar, debes identificar qué empleado usa cada máquina. Estos datos se encuentran en las tablas machines y employees.
Debes usar una unión interna de SQL para que se muestren los registros que necesitas a partir de una columna de conexión. En este caso, ambas tablas incluyen la columna device_id. Esta es la que usarás para realizar la unión.
- Ejecuta la siguiente consulta para recuperar los registros de la tabla
machines:
SELECT *
FROM machines;
Notarás que esta consulta no es suficiente para hacer la unión y recuperar la información que necesitas.
- Realiza la siguiente consulta para ejecutar la unión interna entre las tablas
machines y employees según la columna device_id. Reemplaza la X y la Y con este nombre de columna:
SELECT *
FROM machines
INNER JOIN employees ON machines.X = employees.Y;
Nota: Si colocas la tabla employees después de INNER JOIN, la tabla se ubicará a la derecha.
Para realizar una unión, debes vincular las tablas unidas según una columna en común. En el caso de las tablas employees y machines, la columna device_id es la que tienen en común.
Esta es la consulta correcta para resolver este paso:
SELECT *
FROM machines
INNER JOIN employees ON machines.device_id = employees.device_id;
Nota: Si el resultado de la consulta es demasiado amplio para la shell, presiona el botón Open Linux Console, que te mostramos en la sección de Funciones del lab, para abrir una vista de pantalla completa de la shell Bash, donde puedes volver a ingresar la consulta.
Respuesta: La consulta de la unión interna mostró 185 filas.
Haz clic en Revisar mi progreso para verificar que completaste esta tarea correctamente.
Une a los empleados con sus máquinas
Tarea 2: Obtén más datos
Ahora debes mostrar la información de todas las máquinas y los empleados que tienen máquinas. A continuación, debes realizar la acción inversa y recuperar la información de todos los empleados y las máquinas que les asignaron.
Para ello, ejecutarás una unión hacia la izquierda y una unión hacia la derecha en las tablas employees y machines. Los resultados incluirán todos los registros de una tabla o la otra. Debes vincular estas tablas usando la columna en común device_id.
- Ejecuta la siguiente consulta en SQL para conectar las tablas
machines y employees a través de una unión hacia la izquierda. Debes reemplazar la X con la palabra clave en la consulta:
SELECT *
FROM machines
X JOIN employees ON machines.device_id = employees.device_id;
Esta es la consulta correcta para resolver este paso:
SELECT *
FROM machines
LEFT JOIN employees ON machines.device_id = employees.device_id;
Note: En una unión hacia la izquierda, se incluyen en el resultado todos los registros de la tabla que aparecen después de FROM y antes de LEFT JOIN. En este caso, se incluyen todos los registros de la tabla machines, más allá de que las máquinas estén o no asignadas a un empleado.
Respuesta: El último nombre de usuario que se muestra es NULL.
- Ejecuta la siguiente consulta en SQL para conectar las tablas
machines y employees mediante una unión hacia la derecha. Debes reemplazar la X con la palabra clave en la consulta para resolver el problema:
SELECT *
FROM machines
X JOIN employees ON machines.device_id = employees.device_id;
Nota: En una unión hacia la derecha, se incluyen en el resultado todos los registros de la tabla que aparecen después de RIGHT JOIN. En este caso, se incluyen todos los registros de la tabla employees, más allá de que tengan o no una máquina.
Esta es la consulta correcta para resolver este paso:
SELECT *
FROM machines
RIGHT JOIN employees ON machines.device_id = employees.device_id;
Respuesta: El valor de la columna de nombre de usuario que se muestra en el último registro es areyes.
Haz clic en Revisar mi progreso para verificar que completaste esta tarea correctamente.
Obtén más datos
Tarea 3: Recupera datos de intentos de acceso
Para seguir investigando el incidente de seguridad, debes recuperar la información de todos los empleados que realizaron intentos de acceso. Para lograrlo, realizarás una unión interna de las tablas employees y log_in_attempts, y las vincularás con la columna en común username.
- Ejecuta la siguiente consulta en SQL para realizar una unión interna de las tablas
employees y log_in_attempts. Reemplaza la X por el nombre de la tabla correcta: Luego, reemplaza la Y y la Z por el nombre de la columna que conecta las dos tablas:
SELECT *
FROM employees
INNER JOIN X ON Y = Z;
Nota: Cuando unas las tablas, deberás especificar el nombre de la tabla con el nombre de la columna (tabla.columna).
Esta es la consulta correcta para resolver este paso:
SELECT *
FROM employees
INNER JOIN log_in_attempts ON employees.username = log_in_attempts.username;
Respuesta: La unión interna muestra 200 registros.
Haz clic en Revisar mi progreso para verificar que completaste esta tarea correctamente.
Recupera datos de intentos de acceso
Conclusión
¡Muy bien!
Completaste la actividad. Ya deberías poder usar uniones para combinar datos de diferentes tablas en una base de datos.
Ahora tienes experiencia práctica con el uso de los siguientes comandos:
INNER JOIN
LEFT JOIN
RIGHT JOIN
Has hecho un gran trabajo usando las uniones de SQL para obtener exactamente los datos que necesitabas.
Finaliza el lab
Antes de finalizar el lab, asegúrate de haber completado todas las tareas, y continúa con los pasos siguientes:
- Haz clic en End Lab y, luego, en Submit. Cuando finalices el lab, perderás el acceso a la shell Bash. No podrás volver a acceder al trabajo que completaste allí.
- Después de finalizar el lab, aparecerá un diálogo de encuesta, en el que puedes calificar el lab y brindar comentarios, si lo deseas.
- Cierra la pestaña del navegador del lab para volver al curso.
- Actualiza la pestaña del navegador del curso una vez que hayas terminado para marcar este elemento como completo.