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.


Serie d'exercices sur les requêtes sélection incluant les fonctions

Travaux dirigés 3

			##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 3
			##Version : 1.0
			##Date : 00/00/2026
			##Langage et version : SQL 
			##Moteur : SQL Server Express
		
			-- Les fonctions dans le langage SQL

			-- Objectif : 
			-- Ce travail dirigé portera sur l'utilisation des fonctions 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 ddes colonnes
			--		Les données contenues dans la table
			-- Base de données à utiliser : BDRH
			-- ***************************************************************************

			-- ---------
			-- Requête 1
			-- Table : employes
			-- Vérifier la structure de la table "employes"
			-- MAnuipulation des chaines de caractères
			-- LEN()
			-- LEFT() / RIGHT()
			-- LOWER() / UPPER()
			-- CONCAT()
			-- STR()
			-- CHARINDEX()
			-- SUBSTRING()
			-- Convertir le nom en majuscule
			-- Convertir le prénom en minuscule
			-- Créer le nom complet qui est la concaténation du nom et du prénom séparé par une virgule et un espace
			-- Créer la colonne "Nom d'utilisateur"
			-- Calculer la longueur du courriel
			-- Créer la colonne domaine à partir du courriel
			-- Créer la colonne "Indicatif régional"

			-- Votre code ici
			SELECT 
				UPPER([nom]) NomMaj,
				LOWER([prenom]) PrénomMin,
				[nom] + ', ' + [prenom] "Nom complet",
				CONCAT([nom], ', ', [prenom]) [Nom complet 2],
				LEFT([nom], 1) InitialeNom,
				LOWER(CONCAT(LEFT([prenom], 1),nom)) [Nom d'utilisateur],
				[courriel],
				CHARINDEX('@',courriel) PosArrobas,
				LEFT([Courriel], CHARINDEX('@',courriel) - 1) Username,
				-- SUBSTRING(courriel, CHARINDEX('@', courriel) + 1, LEN(Courriel) - LEN(LEFT(Courriel,CHARINDEX('@', courriel)))) [Nom de domaine],
				SUBSTRING(courriel, 1, CHARINDEX('@',courriel) -1 ) UserName2,
				[telephone],
				LEFT([telephone], 3) IndRegional,	
				[date_embauche],
				[salaire],
				CAST([salaire] AS int) SalaireEntier,
				ISNUMERIC(CAST([salaire] AS int)) Type_Salaire
			FROM tbl_employes
					
		
			-- ---------
			-- Requête 2
			-- Les fonctions date / heure
			-- GETDATE() retourne la date du système
			-- YEAR() Extrait l'année d'une date
			-- MONTH() Extrait le mois d'une date (1-12)
			-- DAY() Extrait le jour d'une date
			-- DATEDIF() effectue une opération sur les dates en soustrayant deux dates
			-- DATEADD() effectue une opération sur les dates en ajoutant une valeur à une partie de date
			-- DATEPART(intervalle, date) retourne une partie de la date passée en parametre

			-- Votre code ici
			SELECT 
				GETDATE() AS DateJour	-- Affiche la date système complète avec heure
				,YEAR(GETDATE()) AnneeDateJour -- Affiche l'année de la date système
				,MONTH(GETDATE()) MoisDateJourEnChiffre -- Affiche le mois de la date système en chiffre
				,DAY(GETDATE()) JourDateJour -- Affiche le jour de la date système
				,DATEPART(MM, GETDATE()) MoisDateJourEnChiffre2 -- Affiche le mois de la date système en chiffre
				,DATEPART(HH, GETDATE()) HeureDateJour -- Retourne l'heure de la date
				,DATENAME(MONTH, GETDATE()) MoisDateJourEnLettre --Affiche le mois de la date système sous forme de chaine (Janvier au lieu de 01)
				,DATEADD(day, 30, GETDATE()) DateJourPlus30 -- Ajoputer 30 au jour courant
				,DATEDIFF(year, '1970-02-01', GETDATE()) DiffDeDateEnAnnee -- Calculer le nombre d'année entre 1970 et l'année de la date système
				,DATEDIFF(MONTH, '1970-02-01', GETDATE()) DiffDeDateEnMois -- Calculer le nombre de mois entre 1970-02-01 et la date système

		
			-- ---------
			-- Requête 3
			-- Application des fonctions "Date"
			-- Afficher l'année d'embauche  
			-- Calculer l'ancienneté des employés
			-- La prochaine date d'augmentation des employés dans 2 ans

			-- Votre code ici
			SELECT 
				[prenom],
				[nom],
				[courriel],
				[telephone],
				[date_embauche],
				YEAR([date_embauche]) AnneEmbauche,
				DATEDIFF(YEAR, [date_embauche], GETDATE()) Ancienneté,
				[salaire],
				DATEADD(YEAR, 2, [date_embauche]) "Prochaine aug"
			FROM tbl_employes
		
			-- ---------
			-- Requête 4

		
			-- ----------
			-- Requête 5

		
			-- ----------
			-- Requête 6

		
			-- ----------
			-- Requête 7

		
			-- ----------
			-- Requête 8

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

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

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

		
		

		
		

W3schools

Python.org