Introducción
En este proyecto práctico, emprenderás un viaje para dominar el arte de la consulta SQL trabajando con la base de datos de personal y su tabla emp. A través de una serie de ejercicios prácticos, adquirirás las habilidades necesarias para recuperar, filtrar y analizar efectivamente los datos de los empleados.
👀 Vista previa

🎯 Tareas
En este proyecto, aprenderás:
- Cómo acceder a la base de datos MySQL utilizando la terminal
- Cómo importar un archivo SQL en la base de datos MySQL
- Cómo consultar toda la información de los empleados de la tabla
empy ordenar los resultados - Cómo consultar el número de departamento y el número total de empleados de los departamentos con más de 4 empleados
- Cómo consultar al empleado con el salario más alto del departamento 10
🏆 Logros
Después de completar este proyecto, podrás:
- Comprender cómo trabajar con bases de datos MySQL utilizando la terminal
- Realizar consultas SQL básicas para recuperar y analizar datos
- Aplicar técnicas de ordenamiento, agrupamiento y filtrado para extraer información específica de una base de datos
Acceder a MySQL e importar la base de datos
En este paso, aprenderás cómo acceder a la base de datos MySQL e importar el archivo personnel.sql.
- Abra la terminal y inicie el servicio MySQL utilizando el siguiente comando:
sudo service mysql start
- Acceda al cliente MySQL utilizando el siguiente comando:
sudo mysql
- Importe el archivo
personnel.sqlen la base de datos MySQL utilizando el siguiente comando:
source /home/labex/project/personnel.sql;
Esto importará la base de datos personnel y la tabla emp en su entorno MySQL.
Escribir la consulta
En este paso, aprenderás a escribir tres consultas: cómo consultar a todos los empleados de la tabla emp y ordenar los resultados, cómo consultar el número de departamento y el número total de empleados de los departamentos con más de 4 empleados, y cómo consultar al empleado mejor pagado del departamento 10.
Cree un nuevo archivo llamado
select_group.sqlen el directorio~/project.En el archivo
select_group.sql, agregue la siguiente consulta SQL:Esta consulta devolverá toda la información de los empleados de la tabla
emp, ordenada por número de departamento en orden ascendente y por salario en orden descendente.SELECT * FROM emp ORDER BY deptno ASC, sal DESC;Esta consulta devolverá el número de departamento y el número total de empleados de los departamentos con más de 4 empleados. La cláusula
GROUP BYse utiliza para agrupar a los empleados por número de departamento, y la cláusulaHAVINGse utiliza para filtrar los resultados para que solo incluyan departamentos con más de 4 empleados.SELECT deptno, COUNT(*) AS total_employees FROM emp GROUP BY deptno HAVING total_employees > 4;Esta consulta devolverá el número de empleado, nombre, número de departamento e información de trabajo del empleado con número de departamento 10 y el salario más alto. La cláusula
WHEREse utiliza para filtrar los resultados para que solo incluyan empleados con número de departamento 10, la cláusulaORDER BYse utiliza para ordenar los resultados por salario en orden descendente, y la cláusulaLIMIT 1se utiliza para devolver solo el primer resultado, que será el empleado con el salario más alto.SELECT empno, ename, deptno, job FROM emp WHERE deptno = 10 ORDER BY sal DESC LIMIT 1;
Guarde el archivo.
Ejecutar el script SQL
En este paso, aprenderás cómo ejecutar el script SQL.
En la terminal de MySQL, ejecute el script
select_group.sql:source /home/labex/project/select_group.sql;Esto ejecutará la instrucción SQL en el archivo
select_group.sqly mostrará el resultado.Salida de ejemplo:
MariaDB [personnel]> source /home/labex/project/select_group.sql; +-------+--------+-----------+------+------------+---------+---------+--------+ | empno | ename | job | mgr | hiredate | sal | comm | deptno | +-------+--------+-----------+------+------------+---------+---------+--------+ | 7839 | KING | PRESIDENT | NULL | 1981-11-17 | 5000.00 | NULL | 10 | | 7782 | CLARK | MANAGER | 7839 | 1981-06-09 | 2450.00 | NULL | 10 | | 7934 | MILLER | CLERK | 7782 | 1982-01-23 | 1300.00 | NULL | 10 | | 7902 | FORD | ANALYST | 7566 | 1981-12-03 | 3000.00 | NULL | 20 | | 7788 | SCOTT | ANALYST | 7566 | 1987-06-13 | 3000.00 | NULL | 20 | | 7566 | JONES | MANAGER | 7839 | 1981-04-02 | 2975.00 | NULL | 20 | | 7876 | ADAMS | CLERK | 7788 | 1987-06-13 | 1100.00 | NULL | 20 | | 7369 | SMITH | CLERK | 7902 | 1980-12-17 | 800.00 | NULL | 20 | | 7698 | BLAKE | MANAGER | 7839 | 1981-05-01 | 2850.00 | NULL | 30 | | 7499 | ALLEN | SALESMAN | 7698 | 1981-02-20 | 1600.00 | 300.00 | 30 | | 7844 | TURNER | SALESMAN | 7698 | 1981-09-08 | 1500.00 | 0.00 | 30 | | 7654 | MARTIN | SALESMAN | 7698 | 1981-09-28 | 1250.00 | 1400.00 | 30 | | 7521 | WARD | SALESMAN | 7698 | 1981-02-22 | 1250.00 | 500.00 | 30 | | 7900 | JAMES | CLERK | 7698 | 1981-12-03 | 950.00 | NULL | 30 | +-------+--------+-----------+------+------------+---------+---------+--------+ 14 filas en el conjunto (0.000 segundos) +--------+-----------------+ | deptno | total_employees | +--------+-----------------+ | 20 | 5 | | 30 | 6 | +--------+-----------------+ 2 filas en el conjunto (0.000 segundos) +-------+-------+--------+-----------+ | empno | ename | deptno | job | +-------+-------+--------+-----------+ | 7839 | KING | 10 | PRESIDENT | +-------+-------+--------+-----------+ 1 fila en el conjunto (0.000 segundos)
Resumen
¡Felicitaciones! Has completado este proyecto. Puedes practicar más laboratorios en LabEx para mejorar tus habilidades.
