Accès à la base de données MySQL et requêtage SQL

SQLSQLBeginner
Pratiquer maintenant

💡 Ce tutoriel est traduit par l'IA à partir de la version anglaise. Pour voir la version originale, vous pouvez cliquer ici

Introduction

Dans ce projet pratique, vous allez entreprendre un voyage pour maîtriser l'art de la requêtage SQL en travaillant avec la base de données personnel et sa table emp. Par une série d'exercices pratiques, vous acquerrez les compétences nécessaires pour récupérer, filtrer et analyser efficacement les données des employés.

👀 Aperçu

Image d aperçu de requête SQL

🎯 Tâches

Dans ce projet, vous allez apprendre :

  • Comment accéder à la base de données MySQL à l'aide du terminal
  • Comment importer un fichier SQL dans la base de données MySQL
  • Comment interroger toutes les informations des employés dans la table emp et trier les résultats
  • Comment interroger le numéro de département et le nombre total d'employés pour les départements ayant plus de 4 employés
  • Comment interroger l'employé ayant le salaire le plus élevé dans le département 10

🏆 Réalisations

Après avoir terminé ce projet, vous serez capable de :

  • Comprendre comment travailler avec les bases de données MySQL à l'aide du terminal
  • Effectuer des requêtes SQL de base pour récupérer et analyser des données
  • Appliquer des techniques de tri, de regroupement et de filtrage pour extraire des informations spécifiques d'une base de données

Accéder à MySQL et importer la base de données

Dans cette étape, vous allez apprendre à accéder à la base de données MySQL et à importer le fichier personnel.sql.

  1. Ouvrez le terminal et démarrez le service MySQL en utilisant la commande suivante :
sudo service mysql start
  1. Accédez au client MySQL en utilisant la commande suivante :
sudo mysql
  1. Importez le fichier personnel.sql dans la base de données MySQL en utilisant la commande suivante :
source /home/labex/project/personnel.sql;

Cela importera la base de données personnel et la table emp dans votre environnement MySQL.

Écrire la requête

Dans cette étape, vous allez apprendre à écrire trois requêtes, à savoir comment interroger tous les employés de la table emp et trier les résultats, comment interroger le numéro de département et le nombre total d'employés pour les départements ayant plus de 4 employés, et comment interroger l'employé ayant le salaire le plus élevé dans le département 10.

  1. Créez un nouveau fichier nommé select_group.sql dans le répertoire ~/project.

  2. Dans le fichier select_group.sql, ajoutez la requête SQL suivante :

  3. Cette requête retournera toutes les informations des employés de la table emp, triées par numéro de département par ordre croissant et par salaire par ordre décroissant.

    SELECT * FROM emp
    ORDER BY deptno ASC, sal DESC;
  4. Cette requête retournera le numéro de département et le nombre total d'employés pour les départements ayant plus de 4 employés. La clause GROUP BY est utilisée pour regrouper les employés par numéro de département, et la clause HAVING est utilisée pour filtrer les résultats pour n'inclure que les départements ayant plus de 4 employés.

    SELECT deptno, COUNT(*) AS total_employees
    FROM emp
    GROUP BY deptno
    HAVING total_employees > 4;
  5. Cette requête retournera le numéro d'employé, le nom, le numéro de département et les informations sur le poste de l'employé du département 10 ayant le salaire le plus élevé. La clause WHERE est utilisée pour filtrer les résultats pour n'inclure que les employés du département 10, la clause ORDER BY est utilisée pour trier les résultats par salaire par ordre décroissant, et la clause LIMIT 1 est utilisée pour retourner seulement le premier résultat, qui sera l'employé ayant le salaire le plus élevé.

    SELECT empno, ename, deptno, job
    FROM emp
    WHERE deptno = 10
    ORDER BY sal DESC
    LIMIT 1;

    Enregistrez le fichier.

Exécuter le script SQL

Dans cette étape, vous allez apprendre à exécuter le script SQL.

  1. Dans le terminal MySQL, exécutez le script select_group.sql :

    source /home/labex/project/select_group.sql;

    Cela exécutera l'instruction SQL dans le fichier select_group.sql et affichera le résultat.

    Exemple de sortie :

    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 lignes sélectionnées (0,000 sec)
    
    +--------+-----------------+
    | deptno | total_employees |
    +--------+-----------------+
    |     20 |               5 |
    |     30 |               6 |
    +--------+-----------------+
    2 lignes sélectionnées (0,000 sec)
    
    +-------+-------+--------+-----------+
    | empno | ename | deptno | job       |
    +-------+-------+--------+-----------+
    |  7839 | KING  |     10 | PRESIDENT |
    +-------+-------+--------+-----------+
    1 ligne sélectionnée (0,000 sec)
✨ Vérifier la solution et pratiquer

Sommaire

Félicitations ! Vous avez terminé ce projet. Vous pouvez pratiquer d'autres laboratoires sur LabEx pour améliorer vos compétences.