Langage SQL
(Suite)
Prof : [Link]
CPGE TETOUAN
MPSI-TSI
chafikislam@[Link]
8 avril 2025
Fonctions d’agrégation Trier les résultats Limitation de l’affichage Manipulation des données FIN DU PROGRAMME
Les fonctions d’agrégation utilisées sont :
AVG : Calcule la moyenne
COUNT : Calcule le nombre de lignes
MAX : Calcule la valeur maximale
MIN : Calcule la valeur minimale
SUM : Effectue la somme des valeurs
1/25
Fonctions d’agrégation Trier les résultats Limitation de l’affichage Manipulation des données FIN DU PROGRAMME
Exemple :
Soit la table :
Eleves (Id , Nom, Prenom, Tel, NoteBac, dateNaissance, classe)
Afficher la note de bac maximale des élèves
2/25
Fonctions d’agrégation Trier les résultats Limitation de l’affichage Manipulation des données FIN DU PROGRAMME
Exemple :
Soit la table :
Eleves (Id , Nom, Prenom, Tel, NoteBac, dateNaissance, classe)
Afficher la note de bac maximale des élèves
SELECT MAX(NoteBac) FROM Eleves ;
2/25
Fonctions d’agrégation Trier les résultats Limitation de l’affichage Manipulation des données FIN DU PROGRAMME
Exemple :
Soit la table :
Eleves (Id , Nom, Prenom, Tel, NoteBac, dateNaissance, classe)
une requête SQL qui permet de compter le nombre d’élèves ayant obtenu une
note supérieure à la moyenne des notes des élèves.
3/25
Fonctions d’agrégation Trier les résultats Limitation de l’affichage Manipulation des données FIN DU PROGRAMME
Exemple :
Soit la table :
Eleves (Id , Nom, Prenom, Tel, NoteBac, dateNaissance, classe)
une requête SQL qui permet de compter le nombre d’élèves ayant obtenu une
note supérieure à la moyenne des notes des élèves.
SELECT COUNT(*) AS nb FROM eleves
WHERE notes > (SELECT AVG(notes) FROM eleves)
3/25
Fonctions d’agrégation Trier les résultats Limitation de l’affichage Manipulation des données FIN DU PROGRAMME
Exemple :
Soit la table :
Eleves (Id , Nom, Prenom, Tel, NoteBac, dateNaissance, classe)
Afficher la note de bac maximale des élèves de chaque classe
4/25
Fonctions d’agrégation Trier les résultats Limitation de l’affichage Manipulation des données FIN DU PROGRAMME
Exemple :
Soit la table :
Eleves (Id , Nom, Prenom, Tel, NoteBac, dateNaissance, classe)
Afficher la note de bac maximale des élèves de chaque classe
4/25
Fonctions d’agrégation Trier les résultats Limitation de l’affichage Manipulation des données FIN DU PROGRAMME
Group by
Utiliser GROUP BY pour regrouper les élèves par classe
Utiliser la fonction MAX() pour trouver la plus haute note dans chaque
groupe."
5/25
Fonctions d’agrégation Trier les résultats Limitation de l’affichage Manipulation des données FIN DU PROGRAMME
Group by
Utiliser GROUP BY pour regrouper les élèves par classe
Utiliser la fonction MAX() pour trouver la plus haute note dans chaque
groupe."
SELECT classe, MAX(NoteBac) AS NoteMax FROM Eleves GROUP BY classe ;
5/25
Fonctions d’agrégation Trier les résultats Limitation de l’affichage Manipulation des données FIN DU PROGRAMME
Exemple :
Soit la table :
Eleves (Id , Nom, Prenom, Tel, NoteBac, dateNaissance, classe)
Afficher pour chaque classe le nombre d’élèves, mais seulement pour les classes
dont la moyenne de la note du bac est supérieure à 14
6/25
Fonctions d’agrégation Trier les résultats Limitation de l’affichage Manipulation des données FIN DU PROGRAMME
Exemple :
Soit la table :
Eleves (Id , Nom, Prenom, Tel, NoteBac, dateNaissance, classe)
Afficher pour chaque classe le nombre d’élèves, mais seulement pour les classes
dont la moyenne de la note du bac est supérieure à 14
SELECT classe, COUNT(*) AS nombreEleves
FROM Eleves
GROUP BY classe
HAVING AVG(NoteBac)>14 ;
6/25
Fonctions d’agrégation Trier les résultats Limitation de l’affichage Manipulation des données FIN DU PROGRAMME
Syntaxe générale :
SELECT A1 , ..., An , f 1 ( B1 ), ..., f m ( Bm )FROM R GROUP BY A1 , ..., An
HAVING condition ;
Avec A1 , ..., An des colonnes de la table R, et f 1 , ..., f m des fonctions d’agréga-
tion appliquées sur des colonnes B1 , ..., Bm de la table R
7/25
Fonctions d’agrégation Trier les résultats Limitation de l’affichage Manipulation des données FIN DU PROGRAMME
Remarque :
Sur le résultat de GROUP BY, on trouve qu’une seule ligne pour chaque
groupe. Toutes les fonctions d’agrégation excluent par défaut les valeurs
NULL avant de travailler sur les données.
Lorsque vous utilisez la clause GROUP BY, chaque colonne que vous
sélectionnez dans la clause SELECT doit également apparaître dans la
clause GROUP BY, à moins qu’elle ne soit utilisée avec une fonction
d’agrégation.
8/25
Fonctions d’agrégation Trier les résultats Limitation de l’affichage Manipulation des données FIN DU PROGRAMME
Remarque :
Sur le résultat de GROUP BY, on trouve qu’une seule ligne pour chaque
groupe. Toutes les fonctions d’agrégation excluent par défaut les valeurs
NULL avant de travailler sur les données.
Lorsque vous utilisez la clause GROUP BY, chaque colonne que vous
sélectionnez dans la clause SELECT doit également apparaître dans la
clause GROUP BY, à moins qu’elle ne soit utilisée avec une fonction
d’agrégation.
HAVING permet de filtrer les résultats basés sur des conditions
appliquées aux résultats d’agrégation.
8/25
Fonctions d’agrégation Trier les résultats Limitation de l’affichage Manipulation des données FIN DU PROGRAMME
Il est possible de trier les données sur une ou plusieurs colonnes :
par ordre ascendant (ASC)
par ordre descendant (DESC)
Par défaut les résultats sont classés par ordre ascendant.
9/25
Fonctions d’agrégation Trier les résultats Limitation de l’affichage Manipulation des données FIN DU PROGRAMME
Exemple :
Soit la table :
Eleves (Id , Nom, Prenom, Tel, NoteBac, dateNaissance, classe)
Afficher l’identifiant, le nom et le prenom des élèves par ordre croissant du
nom.
10/25
Fonctions d’agrégation Trier les résultats Limitation de l’affichage Manipulation des données FIN DU PROGRAMME
Exemple :
Soit la table :
Eleves (Id , Nom, Prenom, Tel, NoteBac, dateNaissance, classe)
Afficher l’identifiant, le nom et le prenom des élèves par ordre croissant du
nom.
SELECT id, Nom , Prenom
FROM classe Eleves
ORDER BY Nom ;
10/25
Fonctions d’agrégation Trier les résultats Limitation de l’affichage Manipulation des données FIN DU PROGRAMME
Exemple :
Soit la table :
Eleves (Id , Nom, Prenom, Tel, NoteBac, dateNaissance, classe)
Afficher la note de bac moyenne de chaque classe, et trier le résultat par ordre
décroissant de la note moyenne.
11/25
Fonctions d’agrégation Trier les résultats Limitation de l’affichage Manipulation des données FIN DU PROGRAMME
Exemple :
Soit la table :
Eleves (Id , Nom, Prenom, Tel, NoteBac, dateNaissance, classe)
Afficher la note de bac moyenne de chaque classe, et trier le résultat par ordre
décroissant de la note moyenne.
SELECT classe, AVG(NoteBac) AS moyenne
FROM Eleves
GROUP BY classe
ORDER BY moyenne DESC ;
11/25
Fonctions d’agrégation Trier les résultats Limitation de l’affichage Manipulation des données FIN DU PROGRAMME
Syntaxe générale :
SELECT . . . FROM . . . WHERE . . .
ORDER BY colonne1 [ASC | DESC],. . . , colonneP [ASC | DESC] ;
12/25
Fonctions d’agrégation Trier les résultats Limitation de l’affichage Manipulation des données FIN DU PROGRAMME
Pour limiter le nombre d’éléments (lignes) retournés par une requête, on uti-
lisera la commande :
SELECT ... FROM ... LIMIT N OFFSET M ;
LIMIT N avec N un entier, permet de limiter le nombre de résultats à N
OFFSET M indique de passer M lignes avant de renvoyer les lignes
restantes.
13/25
Fonctions d’agrégation Trier les résultats Limitation de l’affichage Manipulation des données FIN DU PROGRAMME
Exemple :
Soit la table :
Articles (idArticle, nom, prix)
Afficher les noms des 3 plus chers articles
14/25
Fonctions d’agrégation Trier les résultats Limitation de l’affichage Manipulation des données FIN DU PROGRAMME
Exemple :
Soit la table :
Articles (idArticle, nom, prix)
Afficher les noms des 3 plus chers articles
SELECT nom
FROM Articles
ORDER BY prix DESC
LIMIT 3 ;
14/25
Fonctions d’agrégation Trier les résultats Limitation de l’affichage Manipulation des données FIN DU PROGRAMME
Une requête SQL permet également de manipuler les données à l’aide de trois
commandes fondamentales :
INSERT : Pour insérer de nouvelles données dans une table.
UPDATE : Pour mettre à jour des données existantes dans une table.
DELETE : Pour supprimer des données d’une table.
Ces commandes sont essentielles pour modifier et gérer les données stockées
dans une base de données relationnelle en utilisant le langage SQL.
15/25
Fonctions d’agrégation Trier les résultats Limitation de l’affichage Manipulation des données FIN DU PROGRAMME
Insertion d’une ligne dans une table :
INSERT INTO nom_table VALUES (valeur1, valeur2, valeur3,...)
16/25
Fonctions d’agrégation Trier les résultats Limitation de l’affichage Manipulation des données FIN DU PROGRAMME
Exemple : CNC 2023
17/25
Fonctions d’agrégation Trier les résultats Limitation de l’affichage Manipulation des données FIN DU PROGRAMME
Exemple : CNC 2023
INSERT INTO Personne VALUES (123, "GUISSI", "MARYAM","F") ;
INSERT INTO Personne VALUES (138, "FORA", "AHMED","M")
17/25
Fonctions d’agrégation Trier les résultats Limitation de l’affichage Manipulation des données FIN DU PROGRAMME
Copie des Données entre Tables :
INSERT INTO SELECT copie des données d’une table et les insère dans
une autre table.
INSERT INTO SELECT exige que les types de données dans les tables
source et cible correspondent.
la table cible doit exister.
18/25
Fonctions d’agrégation Trier les résultats Limitation de l’affichage Manipulation des données FIN DU PROGRAMME
Copie des Données entre Tables :
INSERT INTO nomtable_cible
SELECT * FROM nomtable_source WHERE condition ;
19/25
Fonctions d’agrégation Trier les résultats Limitation de l’affichage Manipulation des données FIN DU PROGRAMME
Exemple : CNC 2018
20/25
Fonctions d’agrégation Trier les résultats Limitation de l’affichage Manipulation des données FIN DU PROGRAMME
Exemple : CNC 2018
INSERT INTO membres_1
SELECT * FROM membres
WHERE prenom = (SELECT prenom FROM membres WHERE generation =
0) ;
20/25
Fonctions d’agrégation Trier les résultats Limitation de l’affichage Manipulation des données FIN DU PROGRAMME
Modification d’une ligne dans une table :
UPDATE nom_table
SET col1 = val1, col2 = val2, ...
WHERE condition ;
21/25
Fonctions d’agrégation Trier les résultats Limitation de l’affichage Manipulation des données FIN DU PROGRAMME
Modification d’une ligne dans une table :
UPDATE nom_table
SET col1 = val1, col2 = val2, ...
WHERE condition ;
Cela permet d’attribuer une nouvelle valeur val1 à la colonne col1 et val2 à la
colonne col2 pour les lignes qui respectent la condition stipulé avec WHERE.
21/25
Fonctions d’agrégation Trier les résultats Limitation de l’affichage Manipulation des données FIN DU PROGRAMME
Exemple :
Soit la table :
Empolye (Id , Nom, Prenom, Poste, Salaire)
Donner une requête SQL permettant d’augmenter le salaire des ingénieurs de
10% de la table employé
22/25
Fonctions d’agrégation Trier les résultats Limitation de l’affichage Manipulation des données FIN DU PROGRAMME
Exemple :
Soit la table :
Empolye (Id , Nom, Prenom, Poste, Salaire)
Donner une requête SQL permettant d’augmenter le salaire des ingénieurs de
10% de la table employé
UPDATE Employe
SET salaire = salaire * 1.1
WHERE Poste = "ingenieur"
22/25
Fonctions d’agrégation Trier les résultats Limitation de l’affichage Manipulation des données FIN DU PROGRAMME
Supprimer des lignes d’une table :
DELETE FROM nom_table
WHERE condition ;
23/25
Fonctions d’agrégation Trier les résultats Limitation de l’affichage Manipulation des données FIN DU PROGRAMME
Supprimer des lignes d’une table :
DELETE FROM nom_table
WHERE condition ;
Cela permet de supprimer toutes les lignes qui vérifient la condition stipulée
avec WHERE.
23/25
Fonctions d’agrégation Trier les résultats Limitation de l’affichage Manipulation des données FIN DU PROGRAMME
Exemple :
Soit la table :
Empolye (Id , Nom, Prenom, Poste, Salaire)
Donner une requête SQL pour supprimer tous les employés dont le poste est
’technicien’ de la table employé :
24/25
Fonctions d’agrégation Trier les résultats Limitation de l’affichage Manipulation des données FIN DU PROGRAMME
Exemple :
Soit la table :
Empolye (Id , Nom, Prenom, Poste, Salaire)
Donner une requête SQL pour supprimer tous les employés dont le poste est
’technicien’ de la table employé :
DELETE FROM Employe
WHERE Poste = ’technicien’ ;
24/25
Fonctions d’agrégation Trier les résultats Limitation de l’affichage Manipulation des données FIN DU PROGRAMME
25/25