TD – Langage SQL : Sélection et Jointures
Base de données utilisée
Nous supposons une base de données Xtreme avec les tables suivantes :
Clients(ID client, Nom du client, Email, Ville, Pays)
Commandes(ID commande, ID client, Date de commande, Montant commande, Commande
expédiée, Paiement reçu)
Produits(ID produit, Nom du produit, Prix conseillé, ID fournisseur)
Fournisseurs(ID fournisseur, Nom du fournisseur)
Employés(ID employé, Nom, Prénom, Date d'embauche, ID supérieur)
Exercice 1 – Sélection simple
Sql
Copier le code
SELECT
[Nom du client],
[Ville]
FROM [Clients]
WHERE [Pays] = 'France';
Exercice 2 – Formatage de texte
Afficher les 3 premières lettres du nom du client en majuscules suivies de ... (pour étiquettes).
Sql
Copier le code
SELECT
[Nom du client],
CONCAT(UPPER(LEFT([Nom du client], 3)), '...') AS Etiquette
FROM [Clients];
Exercice 3 – Jointure simple
Lister le nom des clients et les détails de leurs commandes (numéro et montant), triés par nom de
client.
Sql
Copier le code
SELECT
C.[Nom du client],
B.[ID commande],
B.[Montant commande]
FROM [Clients] C
JOIN [Commandes] B
ON C.[ID client] = B.[ID client]
ORDER BY C.[Nom du client];
Exercice 4 – Jointure avec DISTINCT
Afficher la liste unique des produits et de leur fournisseur.
Sql
Copier le code
SELECT DISTINCT
F.[Nom du fournisseur],
P.[Nom du produit]
FROM [Produits] P
JOIN [Fournisseurs] F
ON P.[ID fournisseur] = F.[ID fournisseur];
Exercice 5 – Agrégation
Calculer le total des ventes par client, trié par montant décroissant.
Sql
Copier le code
SELECT
C.[Nom du client],
SUM(D.[Montant commande]) AS TotalVentes
FROM [Clients] C
JOIN [Commandes] D
ON C.[ID client] = D.[ID client]
GROUP BY C.[Nom du client]
ORDER BY TotalVentes DESC;
2
Exercice 6 – Filtrage par date
Afficher les commandes passées dans les 6 derniers mois.
Sql
Copier le code
SELECT
[ID commande],
[Date de commande]
FROM [Commandes]
WHERE [Date de commande] >= DATEADD(MONTH, -6, GETDATE());
Exercice 7 – Valeurs NULL
Lister les employés qui n’ont pas de supérieur hiérarchique.
Sql
Copier le code
SELECT
[Nom],
[Prénom]
FROM [Employés]
WHERE [ID supérieur] IS NULL OR [ID supérieur] = '';
✅ Conseils pour réussir ces TD :
1. Toujours vérifier la structure des tables (DESCRIBE ou sp_help sous SQL Server).
2. Utiliser des alias (AS) pour rendre les résultats plus lisibles.
3. Tester chaque clause (WHERE, GROUP BY, ORDER BY) séparément avant de les combiner.
Si tu veux, je peux te préparer un fichier complet de TD SQL avec 20 exercices progressifs allant des
requêtes simples aux sous-requêtes complexes, prêt à être importé dans SQL Server ou MySQL.
Veux-tu que je te prépare ce pack complet ?