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 multitables avec jointure

Travaux dirigés 14

			##Auteur : Enseignant
			##École : Collège Marie Victorin 
			##Session : Hiver 2026
			##Titre du cours : Introduction aux bases de données
			##Titre du programme : Laboratoire DML
			##Version : 1.0
			##Date : 00/00/2026
			##Langage et version : SQL 
			##Moteur : SQL Server Express
		
			-- ==============================================================================
			-- Laboratoire DML
			-- Les commandes DML : INSERT, UPDATE, DELETE


			-- Objectif : 
			-- Ce Laboratoire vise à acquérir les compétences suivantes
			-- ========================================================
			-- Les commandes DML
			-- Dans ce travail dirigé, les commandes DML seront utilisées pour
			-- Insérer, mettre à jour et supprimer des données dans une table
			-- INSERT
			-- UPDATE
			-- DELETE
		
			-- ==============================================================================
			-- Description du cours : Introduction au bases de données
			-- Code du cours : 420-212-MV
			-- Laboratoire DML
			-- Les commandes DML : INSERT, UPDATE, DELETE


			-- Objectif : 
			-- Ce Laboratoire vise à acquérir les compétences suivantes
			-- ========================================================
			-- Les commandes DML
			-- Dans ce travail dirigé, les commandes DML seront utilisées pour
			-- Insérer, mettre à jour et supprimer des données dans une table
			-- INSERT
			-- UPDATE
			-- DELETE

			USE master;
			GO

			-- Créer une base de données TD13
			DROP DATABASE IF EXISTS TD13;
			GO

			CREATE DATABASE TD13;
			GO

			USE TD13;
			GO


			-- Créer unme table tblVehicules
			-- avec les colonnes suivantes :
			-- IDVehicule entier, clé primaire, identité de 1 incrément 1
			-- MarqueVehicule texte de longueur 20 obligatoire
			-- ModeleVehicule texte longueur 15
			-- AnneeModele entier court, obligatoire
			-- TypeVehicule texte longueur 10
			-- Couleur texte longueur 10
			-- DateCreationLigne Date du jour par defaut



			-- Creation de la table
			DROP TABLE IF EXISTS tblVehicules;
			GO

			CREATE TABLE tblVehicules (
				idVehicule INT PRIMARY KEY,
				MarqueVehicule NVARCHAR(20) NOT NULL,
				ModeleVehicule NVARCHAR(15),
				AnneeModele SMALLINT NOT NULL,
				TypeVehicule NVARCHAR(10) NOT NULL,
				CouleurVehicule NVARCHAR(10),
				DateCreation DATE
			)
			GO


			DROP TABLE IF EXISTS tblVehiculesUK;
			GO

			CREATE TABLE tblVehiculesUK (
				idVehicule INT PRIMARY KEY IDENTITY(1,1),
				NumeroSerie uniqueidentifier,
				MarqueVehicule NVARCHAR(20) NOT NULL,
				ModeleVehicule NVARCHAR(15),
				AnneeModele SMALLINT NOT NULL,
				TypeVehicule NVARCHAR(10) NOT NULL,
				CouleurVehicule NVARCHAR(10) DEFAULT 'Blanc',
				DateCreation DATE
			)
			GO

			-- Insertion de données dans la table tblVehicules
			-- Écrire la commande SQL qui insère les données dans la table

			-- Votre code ici
			INSERT INTO tblVehicules
			VALUES 
				(1,'Mercedes','S500',2025,'Voiture',NULL, '2026-04-15' ),
				(2,'Ferrari','Testarosa',2000,'Voiture',NULL, '2026-04-15' ),
				(3,'Mercedes','S560',2026,'Voiture','Jaune', '2026-04-15' ),
				(5,'Mercedes','E500',2024,'Voiture','Blanc', '2026-04-15' ),
				(4,'Audi','A8',2025,'Voiture','Gris', '2026-04-15' );
			GO

			SELECT * 
			FROM tblVehicules;


			INSERT INTO tblVehiculesUK(NumeroSerie,MarqueVehicule,ModeleVehicule,AnneeModele,TypeVehicule,CouleurVehicule,DateCreation)
			VALUES 
				(NEWID(),'Bentley','Mulsanne',2025,'Voiture', 'Jaune',GETDATE() ),
				(NEWID(),'Aston Martin','DB9',2026,'Supercar', 'Bleu',GETDATE() ),
				(NEWID(),'Rolls Royce','Phamtom',2026,'Voiture',DEFAULT, GETDATE() ),
				(NEWID(),'Jaguar','XJ',2024,'Voiture','Orange' ,GETDATE() ),
				(NEWID(),'Landrover','XXX',2025,'SUV',DEFAULT, GETDATE() );
			GO

			SELECT * 
			FROM tblVehiculesUK;

			-- Ajouter la colonne Motorisation texte longueur 8 à la table tblVehicules
			-- Votre code ici
			ALTER TABLE tblVehicules
			ADD 
				Motorisation NVARCHAR(8),	
				PaysConstructeur NVARCHAR(10);
			;
			GO
			-- Vérification de la structure
			-- sp_help

			-- sp_columns
			EXEC sp_columns 'tblVehicules';

			-- Consultation du schema : INFORMATION_SCHEMA.COLUMNS
			SELECT *
				-- COLUMN_NAME,
				-- DATA_TYPE,
				-- CHARACTER_MAXIMUM_LENGTH,
				-- IS_NULLABLE,
				-- COLUMN_DEFAULT,
				-- TABLE_NAME
			FROM INFORMATION_SCHEMA.COLUMNS

			-- Mise à jour de la colonne Motorisation de la table tblVehicules
			-- La motorisation est Essence
			-- Si MarqueVehicule est soit Mercedes, Audi, alors PaysCOntructeur est Allemagne
			-- autrement, Autre pays
			-- Votre code ici
			UPDATE tblVehicules
			SET Motorisation = 'Essence',
				PaysConstructeur = CASE 
										WHEN MarqueVehicule IN ('Mercedes','Audi') THEN 'Allemagne'
										ELSE 'Autre pays'
									END;


			-- Vérification

			print 'Avant la vérification';

			SELECT *
			FROM tblVehicules


			-- Supprimer les données des tables véhicules
			-- Supprimer la table tblVehicules
			DELETE FROM  tblVehicules

			SELECT *
			FROM tblVehicules

			-- Supprimer la table tblVehiculesUK
			DELETE FROM  tblVehiculesUK

			SELECT *
			FROM tblVehiculesUK

			Print 'Fin de script'

			USE master;
			GO

			-- Création de vue --
			-- Utilisation de la base de données BDRH
			USE BDRH;
			GO

			DROP VIEW IF EXISTS vEmpPersCharge;
			GO

			CREATE VIEW vEmpPersCharge 
			AS
			SELECT 
				A.nom Nomemploye,
				A.prenom Prenomemploye,
				B.nom NomPers,
				B.prenom PrenomPers,
				B.lien_parente
			FROM 
				[dbo].[tbl_employes] A,
				[dbo].[tbl_personnes_a_charge] B
			WHERE 
				A.id_employe = B.id_employe

			GO


			-- Vérification de la céation de la vue
			SELECT * FROM vEmpPersCharge;

			GO
			-- Modification de la vue en rajoutant une colonne virtuelle Nom, prenom:
			ALTER VIEW vEmpPersCharge 
			AS
			SELECT 
				A.nom + ', ' + A.prenom NomCompletEmploye,
				B.nom + '' + B.prenom NomCompletPers,
				B.lien_parente
			FROM 
				[dbo].[tbl_employes] A,
				[dbo].[tbl_personnes_a_charge] B
			WHERE 
				A.id_employe = B.id_employe

			GO

			-- Vérification de la céation de la vue
			SELECT * FROM vEmpPersCharge;

			GO

			-- Suppression de la vue
			DROP VIEW vEmpPersCharge;
			GO
		
		

W3schools

Python.org