Acceso a la base de datos MySQL y consultas SQL

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

Imagen de vista previa de consulta SQL

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

  1. Abra la terminal y inicie el servicio MySQL utilizando el siguiente comando:
sudo service mysql start
  1. Acceda al cliente MySQL utilizando el siguiente comando:
sudo mysql
  1. Importe el archivo personnel.sql en 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.

  1. Cree un nuevo archivo llamado select_group.sql en el directorio ~/project.

  2. En el archivo select_group.sql, agregue la siguiente consulta SQL:

  3. 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;
  4. 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 BY se utiliza para agrupar a los empleados por número de departamento, y la cláusula HAVING se 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;
  5. 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 WHERE se utiliza para filtrar los resultados para que solo incluyan empleados con número de departamento 10, la cláusula ORDER BY se utiliza para ordenar los resultados por salario en orden descendente, y la cláusula LIMIT 1 se 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.

  1. 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.sql y 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)
✨ Revisar Solución y Practicar

Resumen

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