Académique Documents
Professionnel Documents
Culture Documents
Plan
1. Fonction de groupe
2. Les groupes
3. Données de plusieurs tables
ENSAJ
SQL
Structured Query Language
Plan
1. Fonctions de groupe
2. Les groupes
3. Données de plusieurs tables
ENSAJ
Introduction
les fonctions de groupe opèrent sur des ensembles de lignes afin de renvoyer un
seul résultat par groupe
ENSAJ 3
Type de fonctions de groupe
ENSAJ 4
Type de fonctions de groupe
Fonction Description
AVG ( [DISTINCT| ALL ] n ) Valeur moyenne de n (les valeurs NULL sont
ignorées)
COUNT({*|[DISTINCT|ALL] expr}) Nombre de lignes, où expr prend une valeur
différente de NULL (toutes les lignes sélectionnées
sont comptées avec *, y compris les doublons et
les lignes avec des valeurs NULL)
MAX([DISTINCT|ALL]expr) Valeur maximale de expr (les valeurs NULL sont
ignorées)
MIN([DISTINCT|ALL]expr) Valeur minimale de expr (les valeurs NULL sont
ignorées)
STDDEV([DISTINCT|ALL]x) Ecart-type de n (les valeurs NULL sont ignorées)
ENSAJ 6
Le schéma de la base Employee
ENSAJ - 2019 7
Utilisation des fonctions AVG et SUM
les fonctions de groupe AVG et SUM sont utilisées sur les données numériques :
Les fonctions MIN et MAX sont utilisé pour les valeurs numérique, les caractères
et les dates :
ENSAJ 8
Utilisation de la fonction COUNT
La fonction COUNT( expr) renvoie le nombre de lignes avec des valeurs non
nulles pour expr:
ENSAJ 9
Fonctions de groupe et valeurs NULL
La fonction NVL( colonne) force les fonctions de groupe à inclure les valeurs
nulles
ENSAJ 10
SQL
Structured Query Language
Plan
1. Fonctions de groupe
2. Les groupes
3. Données de plusieurs tables
ENSAJ
Créer des groupes de données
ENSAJ 12
Syntaxe
ENSAJ 13
Utiliser la clause GROUP BY
Toutes les colonnes de la liste SELECT qui ne sont pas incluses dans des
fonctions de groupe doivent figurer dans la clause GROUP BY.
ENSAJ 14
Utiliser la clause GROUP BY
ENSAJ 15
Regrouper sur plusieurs colonnes
ENSAJ 16
Regrouper sur plusieurs colonnes
La fonction SUM est donc appliquée à la colonne de salaire pour tous les ID de
poste de chaque groupe de numéros de département.
ENSAJ 17
Restreindre les résultats des groupes
ENSAJ 18
Restreindre les résultats des groupes
ENSAJ 19
Utilisation de HAVING
ENSAJ 20
SQL
Structured Query Language
Plan
1. Fonction de groupe
2. Les groupes
ENSAJ
Données sur plusieurs tables
ENSAJ 22
Types de jointure
ENSAJ 23
Jointure naturelle
ENSAJ 24
Le schéma de la base Employee
ENSAJ - 2019 25
Jointure Naturelle
ENSAJ 26
Jointure avec USING
ENSAJ 27
Le schéma de la base Employee
ENSAJ - 2019 28
Jointure avec USING
ENSAJ 29
Jointure avec USING
Les jointures naturelles utilisent toutes les colonnes dont les noms
et les types de données correspondent pour joindre les tables.
La clause USING vous permet de n'indiquer que les colonnes qui
doivent être utilisées pour une équijointure
ENSAJ 30
Différencier les noms de colonne
ENSAJ - 2019 31
Jointure avec ON
ENSAJ - 2019 32
Le schéma de la base Employee
ENSAJ - 2019 33
Auto-jointure avec ON
ENSAJ - 2019 34
Auto-jointure avec ON
ENSAJ - 2019 35
Appliquer des conditions supplémentaires avec ON
ENSAJ - 2019 36
Jointure sur plusieurs tables avec ON
ENSAJ - 2019 37
Produit cartésien
ENSAJ - 2019 38
Produit cartésien ( exemple)
ENSAJ - 2019 39
Produit cartésien ( avec cross join)
ENSAJ - 2019 40
EXERCICE
On considère que la structure des tables d’une base de données pour les ressources humaines
d’une entreprise est la suivante :
Employe(idEmp, nom, prenom, salaire, date_embauche, commission, #idPoste, #idDepartement
#idManager) Poste(idPoste, intitule)
departement(idDepartement, nom_departement, localisation)
Ecrire le code SQL permettant d’ afficher :
- le nom et le salaire des employés qui gagnent plus de 12 000 DH
- Ecrire une requête SQL permettant de déterminer le salaire le plus élevé, le salaire le plus
faible, la somme des salaires et le salaire moyen de tous les employés.
- Ecrire une requête SQL permettant d'afficher le salaire minimum, le salaire maximum, la
somme des salaires et le salaire moyen pour chaque type de poste.
- Ecrire une interrogation SQL permettant d'afficher le nombre de personnes qui occupent le
même poste.
Ecrire une requête SQL permettant d’afficher le nom, l’intitulé de poste et le salaire de tous les
employés dont le poste est intitulé «commercial» et dont le salaire n'est pas égal à 2 500 DH, 3
500 DH ou 7 000 DH.
ENSAJ - 2019 41