Aller au contenu

Exercices

La base de données Département-Employé présente une liste d'employés qui appartiennent à un département et qui ont un superviseur.

Dept-Emp

➡️ Télécharger le fichier SQL de création de la BD

L'extraction de données

Écrire les requêtes SQL SELECT pour extraire les donnés suivantes :

  1. Affichez le nom de l’employé, le nom de son département et sa commission pour tous les employés qui ont un département.

    🌞 Aide : INNER JOIN

    ✔ Résultat attendu :

    Ex

  2. Affichez le numéro d'employé, le nom d'employé, la commission, le nom de département et le site du sépartement pour les employés qui travaillent au département situé à Chicago et dont la commission est supérieur à 1000.

    🌞 Aide: INNER JOIN + WHERE

    ✔ Résultat attendu :

    Ex

  3. Afficher le numéro et le nom des départements n'ayant aucun employé.

    🌞 Aide : LEFT JOIN ou RIGHT JOIN (ça dépend de comment vous écrivez la requête)

    ✔ Résultat attendu :

    Ex

  4. Affichez le nom de tous les départements et le nombre d'employés qui y travaillent, même si un département n’a aucun employé.

    🌞 Aide : LEFT JOIN ou RIGHT JOIN + GROUP BY

    ✔ Résultat attendu :

    Ex

  5. Afficher le total des salaires et des commissions par ville et donner un nom représentatif aux colonnes.

    ATTENTION : Si une commission est nulle, le total sera nul. Utiliser la fonction NVL() dans le SELECT pour afficher 0 si une valeur est nulle.

    ✔ Résultat attendu :

    Ex

  6. Calculez la moyenne des (salaires + commissions) par département ayant des employés et pour chaque département trouvé, affichez son nom et la moyenne en renommant les colonnes adéquatement.

    ✔ Résultat attendu :

    Ex

    👍 Améliorations :

    1. Si une commission est nulle, calculer 0 dans l'adition des salaires + commissions... voir fonction NVL()

      Résultat :

      Ex

    2. Afficher la somme des commissions en plus... voir fonction SUM()

      Résultat :

      Ex

    3. Arrondir les moyennes à l'entier... voir fonction ROUND()

      Résultat :

      Ex

  7. Pour le département ayant le plus grand total des salaires, afficher son nom et sa ville ainsi que le total des salaires de ce département.

    🌞 Aide : FETCH FIRST

    ✔ Résultat attendu :

    Ex

  8. Afficher les noms des employés qui sont superviseur.

    🌞 Aide :

    1. Trouver la liste des numéros distincts de superviseurs
    2. Afficher les noms d'employés pour les employés ayant un numéro apparaissant dans la liste trouvée par le premier SELECT (avec SELECT imbriqué)

    Résultat attendu :

    Ex

  9. Afficher le numéro, le nom et le salaire des employés, ainsi que la moyenne de tous les salaires arrondie à l'entier, pour les employés ayant un salaire supérieur à la moyenne de tous les salaires.

    🌞 Aide :

    1. Trouver la moyenne des salaires arrondie à l'entier et renommer la moyenne moyenneSalaires
    2. Utiliser ce Select dans le FROM, exemple : FROM employe, (select imbriqué)

    ✔ Résultat attendu :

    Ex

  10. Pour chaque superviseur, afficher son nom et le nombre d'employés qu'il supervise, en ordre décroissant du nombre d'employés supervisés, pour les superviseurs ayant au moins 3 employés sous leur charge.

    🌞 Aide : INNER JOIN, renommer les tables (puisqu'on joint la table à elle-même), HAVING

    ⚠ Aucun select imbriqué ici

    ✔ Résultat attendu :

    Ex

  11. Affichez le nom, le salaire et la commission pour les employés dont la somme (salaire + commission) est supérieure à la moyenne globale des salaires + commissions.

    🌞 Aide :

    1. Trouver la moyenne globale des salaires + commissions (attention aux commissions nulles)
    2. Utiliser ce SELECT dans une condition WHERE, exemple :

      WHERE (salaire + commission) > (Select imbriqué)

    ✔ Résultat attendu :

    Ex