Uniones de bases de datos para datos de personal

SQLSQLBeginner
Practicar Ahora

💡 Este tutorial está traducido por IA desde la versión en inglés. Para ver la versión original, puedes hacer clic aquí

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

Ejemplo de consulta de unión SQL

🎯 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.

  1. Abra una terminal y ejecute el siguiente comando para iniciar el servicio MySQL:
sudo service mysql start
  1. Acceda a la interfaz de línea de comandos de MySQL usando el comando sudo sin ninguna contraseña:
sudo mysql
  1. Importe los datos de personal del archivo /home/labex/project/personnel.sql a 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.

  1. Abra el archivo join_query.sql en 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.

  1. 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.

  1. Abra el archivo join_query.sql y 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.

  1. Guarde el archivo join_query.sql.

Recuperar la Información del Superior del Empleado nombrado "SMITH"

En este paso, aprenderá a usar una unión self-join para recuperar la información del superior del empleado nombrado "SMITH".

  1. Abra el archivo join_query.sql y 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".

  1. Guarde el archivo join_query.sql.

Recuperar toda la información de los departamentos y su información de empleados correspondiente

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.

  1. Abra el archivo join_query.sql y 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.

  1. 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;
SQL query execution result
✨ Revisar Solución y Practicar

Resumen

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