Dans cette section, vous trouverez des ressources sur les cours que j'enseigne à savoir de la documentation, du code, des vidéos etc. Dès que je trouve quelque chose d'intéressant à partager, je le mettrai à disposition ici pour mes étudiants.
Travaux dirigés 6
##Auteur : Enseignant ##École : Collège Marie Victorin ##Session : Hiver 2026 ##Titre du cours : Introduction aux bases de données ##Titre du programme : Travaux dirigés 6 ##Version : 1.0 ##Date : 00/00/2026 ##Langage et version : SQL ##Moteur : SQL Server Express
-- Les requêtes sélection dans le langage SQL -- Objectif : -- Ce travail dirigé portera sur la création de requêtes sélection Avec les clauses DISTINCT, GROUP BY et TOP n -- ============================================================================================================ -- *************************************************************************** -- Vérifications à faire systématiquement AVANT d'écrire les requêtes -- Vérifier la structure de la table à utiliser, c'est à dire : -- Le nom de la table -- Le nom des colonnes -- Le type des colonnes -- Les données contenues dans la table -- Base de données à utiliser : Xtremefr -- *************************************************************************** -- --------- -- Requête 1 -- Table : Produits -- Écrire une requête qui affiche la liste des produits vendus par la compagnie Xtreme. -- On affichera les colonnes suivantes : -- No du produit -- Le nom du produit -- La taille du produit -- Le prix du produit -- Le o du type du produit -- La classe du produit -- Votre code ici SELECT [ID produit] ,[Nom du produit] ,[Couleur] ,[Taille] ,[Prix conseillé] ,[ID type de produit] ,[Classe du produit] FROM [dbo].[Produits]
-- --------- -- Requête 2 -- Table : Produits -- Écrire une requête qui affiche les classes de produits de la compagnie Xtreme. -- Votre code ici SELECT [Classe du produit] FROM [dbo].[Produits]
-- --------- -- Requête 3 -- Table : Produits -- Écrire une requête qui affiche les classes de produits uniques de la compagnie Xtreme. A l'affichage, la classe de produit doit apparaitre sans doublons. -- Votre code ici SELECT DISTINCT [Classe du produit] FROM [dbo].[Produits]
-- --------- -- Requête 4 -- Table : Produits -- Écrire une requête qui affiche les types de produits de la compagnies Xtreme. -- Votre code ici SELECT [ID type de produit] FROM [dbo].[Produits]
-- ---------- -- Requête 5 -- Table : Produits -- Modifier la requête précédente pour afficher les types de produits uniques de la compagnie Xtreme. A l'affichage, le type de produit doit apparaitre sans doublons. -- Votre code ici SELECT DISTINCT [ID type de produit] FROM [dbo].[Produits]
-- ---------- -- Requête 6 -- Table : Produits -- Modifier la requête précédente pour compter le nombre de types de produits distincts de la compagnie Xtreme. A l'affichage, on doit voir une ligne avec un chiffre. -- Votre code ici SELECT COUNT(DISTINCT [ID type de produit]) FROM [dbo].[Produits]
-- ---------- -- Requête 7 -- Table : Produits -- Écrire une requête qui affiche les produits uniques vendus par Xtreme. Le nom du produit ne doit s'afficher qu'une seule fois. -- Votre code ici SELECT DISTINCT [Nom du produit] FROM [dbo].[Produits]
-- ---------- -- Requête 8 -- Table : Produits -- Écrire une requête qui affiche les différents produits vendus par la compagnie Xtreme. Le nom du produit ne doit s'afficher qu'une seule fois. -- Votre code ici SELECT [Nom du produit] FROM [dbo].[Produits] GROUP BY [Nom du produit]; -- Nombre total de produits distincts SELECT COUNT(DISTINCT [Nom du produit]) AS NombreDeProduits FROM tblProduits;
-- ---------- -- Requête 9 -- Table : Produits -- Modifier la requête précédente pour afficher le nombre de variétés de chaque produit -- Votre code ici SELECT [Nom du produit], COUNT ([ID produit]) FROM [dbo].[Produits] GROUP BY [Nom du produit];
-- ---------- -- Requête 10 -- Table : Employés -- Écrire une requête qui affiche les postes occupés par les employés. -- Votre code ici SELECT [Poste occupé] FROM [dbo].[Employés];
-- ---------- -- Requête 11 -- Table : Employés -- Écrire une requête qui affiche les différents postes occupés par les employés. Le poste occupé doit être unique (S'afficher une seule fois). -- Suppression des doublons : La clause DISTINCT permet de supprimer les doublons -- Votre code ici SELECT DISTINCT [Poste occupé] FROM [dbo].[Employés];
-- ---------- -- Requête 12 -- Table : Employés -- Écrire une requête qui affiche le nombre d'employés qui occupe chaque poste. -- On affichera : -- Le nom du poste -- Le nombre d'employés dans le poste -- Votre code ici SELECT [Poste occupé], COUNT([ID employé]) FROM [dbo].[Employés] GROUP BY [Poste occupé];
-- ---------- -- Requête 13 -- Table : Commandes -- Écrire une requête qui affiche le nombre et le montant total des commandes de chaque client. Pour faire cette requête, utilisez l’[ID Commande] et non [Numéro de commande] -- L'affichage devra montrer les clients dont le montant total des commandes est le plus élevé en premier. -- On affichera les colonnes suivanates : -- • L’ID du client -- • Le nombre de commandes -- • Le total de ses commandes -- Votre code ici SELECT [ID client], COUNT([ID commande]) AS NombreCommandes, SUM([Montant commande]) AS MontantTotalCommandes FROM [dbo].[Commandes] GROUP BY [ID client] ORDER BY SUM(Commandes.[Montant commande]) DESC;
-- Requête 14 -- Table : Commandes -- Écrire une requête qui affiche le nombre de commandes et le montant total des commandes traités par chaque employé -- On affichera les colonnes suivanates : -- • l'ID de l'employé -- • Le nombre de commandes -- • Le chiffre d'affaires réalisé -- • La plus petite commande traitée -- • Le plus grosse commande traitée -- Votre code ici SELECT [ID employé], COUNT([ID commande]) AS NombreCommandes, SUM([Montant commande]) AS ChiffreAffaires, MIN([Montant commande]) AS PlusPetiteCommande, MAX([Montant commande]) AS PlusGrosseCommande FROM [dbo].[Commandes] GROUP BY [ID employé] ORDER BY SUM([Montant commande]) DESC;
-- Requête 15 -- Table : Clients -- Écrire une requête qui affecte une remise de 5% aux clients dont les commandes de l’année dernière sont supérieures ou égales à 100 000. -- On affichera les colonnes suivanates : -- • Le nom du client -- • Les ventes de l'année dernière -- * Le pourcentage de la remise -- • Le montant de la remise -- Votre code ici SELECT [Nom du client], [Ventes de l'année dernière], 0.05 AS Remise, [Ventes de l'année dernière] * 0.05 FROM Clients WHERE [Ventes de l'année dernière] >= 100000 ORDER BY [Ventes de l'année dernière] DESC;
-- Requête 16 -- Écrite une requête qui affiche le nombre de commandes en retard livrées par chaque transporteur. -- La liste sera triée par Transporteur -- On affichera les colonnes suivanates : -- • Le nom du transporteur -- • Nombre de commandes -- • Le montant moyen des commandes -- Votre code ici SELECT [Transporteur], COUNT([ID commande]) NombreCommandeParFournisseur, AVG([Montant commande]) MoyenneCommandes FROM [dbo].[Commandes] WHERE [Date d'expédition] > [Date de besoin] GROUP BY [Transporteur] ORDER BY Transporteur;
-- Requête 17 -- Écrire une requête qui affiche le nombre d'employés par pays de résidence -- On affichera les colonnes suivantes : -- • Le pays de résidence -- • Le nombre d'employés -- Votre code ici SELECT [Pays], COUNT([ID employé]) AS NombreEmploye FROM [dbo].[Adresses des employés] GROUP BY [Pays];
-- Requête 18 -- Créez une requête qui affiche les statistiques de commandes pour les produits valant plus de 100$. -- La liste affichera les statistiques des plus grosses commandes en premier. -- On affichera les colonnes suivanates : -- * Le numéro de la commande -- • Le nombre de produits par commande -- • Quantité commandée par commande -- • Le montant total de chaque commande -- Votre code ici SELECT [ID commande], COUNT([ID produit]) AS NombreProduit, SUM(Quantité) AS QuantiteParCommande, SUM([Prix unitaire] * [Quantité]) AS PrixTotal FROM [Détails des commandes] WHERE [Prix unitaire] > 100 GROUP BY [ID commande] ORDER BY SUM([Prix unitaire] * [Quantité]) DESC;
-- Requête 19 -- Modifiez la requête précédente pour afficher les 10 produits les plus rentables. -- -- Votre code ici SELECT TOP 10 [ID produit], COUNT([ID produit]) AS NombreProduit, SUM(Quantité) AS QuantiteParCommande, SUM([Prix unitaire] * [Quantité]) AS PrixTotal FROM [Détails des commandes] WHERE [Prix unitaire] > 100 GROUP BY [ID produit] ORDER BY SUM([Prix unitaire] * [Quantité]) DESC;
W3schools
Python.org