Introducción
En este proyecto, aprenderá a usar consultas de unión para recuperar datos pertinentes de la tabla emp, la tabla dept y la tabla salgrade en la base de datos de personal.
👀 Vista previa

🎯 Tareas
En este proyecto, aprenderá:
- Cómo acceder a la base de datos MySQL e importar los datos de personal
- Cómo usar una unión equitativa (inner join) para recuperar los nombres, fechas de contratación y los nombres de departamento correspondientes de la tabla de empleados
- Cómo usar una unión no equitativa para recuperar los nombres, salarios y la información de rango salarial correspondiente de todos los empleados de la tabla de empleados
- Cómo usar una unión self-join para recuperar la información de los superiores del empleado llamado "SMITH"
- Cómo usar una unión left outer join para recuperar toda la información de departamento y su información de empleado correspondiente
🏆 Logros
Después de completar este proyecto, podrá:
- Comprender los diferentes tipos de consultas de unión y cuándo usarlos
- Recuperar y manipular datos de múltiples tablas en una base de datos usando consultas de unión
- Aplicar conceptos avanzados de SQL para resolver problemas complejos de recuperación de datos
Acceder a MySQL e importar los datos
En este paso, aprenderá a acceder a la base de datos MySQL e importar los datos de personal.
- Abra una terminal y ejecute el siguiente comando para iniciar el servicio MySQL:
sudo service mysql start
- Acceda a la interfaz de línea de comandos de MySQL usando el comando
sudosin ninguna contraseña:
sudo mysql
- Importe los datos de personal del archivo
/home/labex/project/personnel.sqla la base de datos MySQL:
SOURCE /home/labex/project/personnel.sql;
Ahora ha accedido con éxito a la base de datos MySQL e importado los datos de personal. Puede continuar con el siguiente paso.
Recuperar nombres de empleados, fechas de contratación y nombres de departamentos
En este paso, aprenderá a usar una unión equitativa (inner join) para recuperar los nombres, fechas de contratación y los nombres de departamento correspondientes de la tabla de empleados.
- Abra el archivo
join_query.sqlen un editor de texto y agregue el siguiente código:
SELECT e.ename AS `Name`, e.hiredate AS HireDate, d.dname AS DepartmentName
FROM emp e
JOIN dept d ON e.deptno = d.deptno;
Esta consulta realiza una inner join entre las tablas emp y dept, coincidiendo la columna deptno de la tabla emp con la columna deptno de la tabla dept. La salida resultante incluirá el nombre del empleado, la fecha de contratación y el nombre del departamento.
- Guarde el archivo
join_query.sql.
Recuperar nombres de empleados, salarios y grados salariales
En este paso, aprenderá a usar una unión no equitativa para recuperar los nombres, salarios y la información de grado salarial correspondiente de todos los empleados de la tabla de empleados.
- Abra el archivo
join_query.sqly agregue el siguiente código debajo de la consulta anterior:
SELECT e.ename AS `Name`, e.sal AS Salary,
CASE s.grade
WHEN 1 THEN 'A'
WHEN 2 THEN 'B'
WHEN 3 THEN 'C'
WHEN 4 THEN 'D'
WHEN 5 THEN 'E'
ELSE 'Unknown'
END AS Grade
FROM emp e
JOIN salgrade s ON e.sal BETWEEN s.losal AND s.hisal;
Esta consulta realiza una unión no equitativa entre las tablas emp y salgrade, coincidiendo el salario del empleado (e.sal) con el rango de grado salarial (s.losal y s.hisal). La instrucción CASE se utiliza para convertir el grado salarial numérico en un grado salarial correspondiente en letras.
- Guarde el archivo
join_query.sql.
Recuperar la información del supervisor del empleado llamado 'SMITH'
En este paso, aprenderá a usar una unión self-join para recuperar la información del superior del empleado nombrado "SMITH".
- Abra el archivo
join_query.sqly agregue el siguiente código debajo de las consultas anteriores:
SELECT e1.empno, e1.ename, e1.job, e1.mgr, e1.hiredate, e1.sal, e1.comm, e1.deptno
FROM emp e1
JOIN emp e2 ON e1.empno = e2.mgr
WHERE e2.ename = 'SMITH';
Esta consulta realiza una unión self-join en la tabla emp, coincidiendo la columna empno de un empleado (e1) con la columna mgr de otro empleado (e2). La cláusula WHERE filtra los resultados para incluir solo la información del superior del empleado nombrado "SMITH".
- Guarde el archivo
join_query.sql.
Recuperar toda la información de los departamentos y su correspondiente información de empleados
En este paso, aprenderá a usar un left outer join para recuperar toda la información de los departamentos y su información de empleados correspondiente. Si un departamento no tiene ningún empleado, la información del empleado se llenará con NULL.
- Abra el archivo
join_query.sqly agregue el siguiente código debajo de las consultas anteriores:
SELECT e.empno, e.ename, e.job, e.mgr, e.hiredate, e.sal, e.comm, e.deptno,
d.deptno AS deptno_dept, d.dname, d.loc
FROM dept d
LEFT JOIN emp e ON d.deptno = e.deptno;
Esta consulta realiza un left outer join entre las tablas dept y emp, coincidiendo la columna deptno de ambas tablas. La salida resultante incluirá toda la información de los departamentos, junto con la información de empleados correspondiente. Si un departamento no tiene ningún empleado, la información del empleado se llenará con NULL.
- Guarde el archivo
join_query.sql.
Ahora ha completado todas las tareas del proyecto. Puede ejecutar el script join_query.sql en la interfaz de línea de comandos de MySQL para ver los resultados de las consultas:
MariaDB [personnel]> SOURCE /home/labex/project/join_query.sql;

Resumen
¡Felicitaciones! Has completado este proyecto. Puedes practicar más laboratorios en LabEx para mejorar tus habilidades.
