Bienvenue

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.


Série d'exercices sur les requêtes sélection avec des conditions

Travaux dirigés 5 - Complémentaires

			##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 5 - Complémentaires
			##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 dans le langage SQL
			-- ===================================================================================

			-- ***************************************************************************
			-- 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
			-- Écrire une requête qui affiche la liste de tous les clients qui sont situés au Canada dont le nom commence par la lettre "C" ainsi que ceux qui sont 
			-- situés aux États-Unis et dont le nom commence par les lettres comprises entre "D" et "P"
			-- La liste sera classée par pays et par ordre alphabétique du nom du client. 

			-- On affichera : 
			-- le nom du client
			-- le prénom du contact
			-- Le nom du contact
			-- le pays
			-- la ville

			-- Votre code ici
			SELECT 
				[Nom du client], 
				[Prénom du contact], 
				[Nom du contact], 
				[Pays]
			FROM Clients
			WHERE 
				([Pays] = 'Canada' AND [Nom du client] LIKE 'C%') 
				OR 
				([Pays] LIKE '%tats-Unis%' AND [Nom du client] BETWEEN 'D%' AND 'Q%')
			ORDER BY Pays, [Nom du client] ASC;				
		
			-- ---------
			-- Requête 2
			-- Écrire une requête qui affiche tous les employés qui ont été embauchés en 1996 et 1999.
			-- Triez les résultats par ancienneté de l'employé c'est à dire les plus anciens en premier
			-- 
			-- On affichera les colonnes suivantes
			-- le nom de l'employé
			-- Le prénom de l'employé
			-- Le poste qu'il occupe
			-- La date de son embauche
			-- Son ancienneté
			-- Sa date de naissance
			-- Son age

			-- Votre code ici
			SELECT 
				[Nom], 
				[Prénom], 
				[Poste occupé], 
				[Date d'embauche], 
				(YEAR(GETDATE()) - YEAR([Date d'embauche])) Ancienneté,
				[Date de naissance],
				DATEDIFF(YEAR, [Date de naissance], GETDATE()) Age
			FROM Employés
			WHERE YEAR([Date d'embauche]) IN (1996, 1999)
			ORDER BY [Date d'embauche];
		
			-- ---------
			-- Requête 3
			-- Écrire une requête qui affiche la liste des produits qui sont de couleur "Rouge", qui contiennent du "vert", dont la taille est 15, 20,  
			-- de type 1,2 et du fournisseur 5
			-- Le résultat sera trié en ordre alphabétique du nom du produit.

			-- On affichera les colonnes suivantes :
			-- Le nom du produit
			-- La couleur du produit
			-- La taille du produit
			-- La classe
			-- Le prix conseillé

			-- Votre code ici
			SELECT 
				[Nom du produit], 
				[Couleur], 
				[Taille], 
				[Classe du produit], 
				[Prix conseillé],
				[ID type de produit],
				[ID fournisseur]
			FROM Produits
			WHERE ([Couleur] = 'Rouge' OR [Couleur] LIKE '%vert%')
			AND ([Taille] IN ('15', '20'))
			AND[ID type de produit] IN (1,3)
			AND [ID fournisseur] = 5
			ORDER BY [Nom du produit] ASC;
		
			-- ---------
			-- Requête 4
			-- Écrire une requête qui affiche la liste des commandes qui ont été passées en 2003, 2005, dont le montant est supérieur à 1000 $, qui ont été expédiées et livrées par "Puralator"
			-- ainsi que les commandes qui n'ont pas été expédiées par les transporteurs "Pickup", "Fedex"
			-- Affichez les résultats en commençant par la date de commande la plus récente et le transportuer

			-- On affichera les colonnes suivanates :
			-- L'ID de la commande
			-- Le montant de la commande
			-- La date de la commande
			-- La date d'expédition
			-- Le nom du transporteur

			-- Votre code ici
			SELECT 
				[ID commande], 
				[Montant commande], 
				[Date de commande], 
				[Date d'expédition], 
				[Transporteur],
				[Commande expédiée]
			FROM Commandes
			WHERE (YEAR([Date de commande]) IN (2003, 2005) 
					AND [Montant commande] > 1000 
					AND [Commande expédiée] = 1 
					AND [Transporteur] = 'Purolator') 
					OR ([Commande expédiée] = 0 
					AND [Transporteur] IN ('Pickup', 'Fedex'))
			ORDER BY [Date de commande] DESC, [Transporteur];
		
			-- ----------
			-- Requête 5
			-- Écrire une requête qui affiche la liste des types de produits qui ne sont pas décrits comme étant des VTT
			-- 
			-- On affichera les colonnes suivantes :
			-- Le nom du type de produit
			-- Sa description

			-- Votre code ici
			SELECT	   
				[Nom du type de produit]
				,[Description]
			FROM [dbo].[tblTypeProduit]
			WHERE [Description] NOT LIKE '%vtt%'
		
			-- ----------
			-- Requête 6
			-- Écrire une requête qui affiche la liste des clients qui n'ont pas de code postal, dont la région a plus de deux caractères, 
			-- dont les ventes de l'année dernière sont supérieures à 10 000 $, 
			-- et qui sont situés dans la région "Québec" ou "Ontario". 
			-- Trier les résultats par les ventes décroissantes.

			-- On affichera 
			-- le nom du client
			-- Le nom et le prenom du contact (en une seule colonne)
			-- Site web
			-- Les ventes
			-- La région
			-- Le code postal
			-- Le code régional du numéro de téléphone

			-- Votre code ici
			SELECT 
				[Nom du client],
				[Prénom du contact],
				[Nom du contact],
				[Site Web],
				[Ventes de l'année dernière],
				[Région],
				[Code postal],
				LEFT([Téléphone], CHARINDEX('-',[Téléphone]) - 1) CodeRegional
			FROM Clients
			WHERE [Code postal] IS NULL	
			AND [Ventes de l'année dernière] > 10000
			AND LEN([Région]) > 2
			ORDER BY [Ventes de l'année dernière] DESC;
		
			-- ----------
			-- Requête 7
			-- Table  : ici vous devez déterminer la table qui contient les informations pour écrire la requête
			-- Écrire une requête qui affiche les commandes n’ayant pas de numéro de commande, (pas l’ID Commande) et qui doivent être réapprovisionnés.
			-- On affichera les colonnes suivantes :
			-- •	ID du Produit
			-- •	Unités en commande
			-- •	Unités en stock
			-- •	Numéro de commande
			-- •	Le seuil de réapprovisionnement
			-- •	

			-- Votre code ici
			SELECT 
				[ID produit], 
				[Unités en commande], 
				[Unités en stock],
				[Seuil de réapprovisionnement],
				[Numéro de commande]
			FROM [dbo].[Achats]
			WHERE ([Unités en commande] = 0) AND [Numéro de commande] IS NULL AND [Unités en stock] < [Seuil de réapprovisionnement];
		
			-- ----------
			-- Requête 8

		
			-- ----------
			-- Requête 9

		
			-- ----------
			-- Requête 10

		
			-- ----------
			-- Requête 11
		
		
			-- ----------
			-- Requête 12

		
			-- ----------
			-- Requête 13

		

		
		

W3schools

Python.org