SQL Server — Programmation T-SQL : requêtes, objets et optimisation

Formation créée le 03/04/2026.
Version du programme : 1

Type de formation

Présentiel

Durée de formation

21 heures (3 jours)
Cette formation est gratuite.
S'inscrire
Cette formation est gratuite.
S'inscrire
Cette formation est gratuite.
S'inscrire

SQL Server — Programmation T-SQL : requêtes, objets et optimisation


Objectif de formation : Permettre aux participants de maîtriser le langage T-SQL pour interroger, manipuler et structurer les données d'une base SQL Server — en concevant des requêtes avancées, des procédures stockées, des fonctions, des déclencheurs et des vues — afin d'écrire un code T-SQL robuste, performant et maintenable en environnement professionnel. Un schéma de base de données métier fil rouge est utilisé tout au long de la formation — commandes, clients, produits, stocks — permettant à chaque participant de construire progressivement un ensemble cohérent de requêtes et d'objets T-SQL directement réutilisables.

Objectifs de la formation

  • Maîtriser les requêtes T-SQL avancées : jointures, sous-requêtes, fonctions analytiques, CTE
  • Manipuler les données avec INSERT, UPDATE, DELETE et MERGE
  • Créer et exploiter les objets de la base : vues, fonctions scalaires et table, procédures stockées
  • Implémenter des déclencheurs (triggers) pour automatiser les traitements
  • Gérer les transactions et les erreurs avec TRY/CATCH
  • Analyser et optimiser les performances des requêtes avec les plans d'exécution
  • Comprendre et exploiter les index pour améliorer les temps de réponse
  • Appliquer les bonnes pratiques de sécurité et de maintenabilité du code T-SQL

Profil des bénéficiaires

Pour qui
  • Développeurs souhaitant maîtriser la programmation T-SQL sous SQL Server
  • Analystes et développeurs BI amenés à écrire des requêtes complexes et des procédures de traitement
  • Administrateurs de bases de données souhaitant renforcer leurs compétences en développement T-SQL
  • Chefs de projet techniques supervisant des développements SQL Server
Prérequis
  • Connaissance des concepts fondamentaux des bases de données relationnelles
  • Notions de base en SQL : SELECT, WHERE, jointures simples
  • Aucune connaissance préalable de T-SQL requise

Contenu de la formation

Module 1 — Environnement et fondamentaux T-SQL (2h)
  • Architecture SQL Server : moteur de base de données, SSMS, bases système et utilisateur
  • Types de données T-SQL : numériques, chaînes (VARCHAR, NVARCHAR), dates, binaires — choisir le bon type
  • Valeurs NULL : comportement, gestion avec ISNULL, COALESCE, NULLIF
  • Opérateurs et fonctions intégrées : fonctions de chaîne, de date, mathématiques
  • Conversion de types : CAST, CONVERT, TRY_CAST, TRY_CONVERT
  • Création et modification de tables : CREATE TABLE, ALTER TABLE, contraintes (PK, FK, UNIQUE, CHECK, DEFAULT)
  • Prise en main de SSMS : éditeur de requêtes, explorateur d'objets, exécution et résultats
  • Travaux pratiques : création du schéma fil rouge (tables Clients, Produits, Commandes, Lignes_Commandes), insertion des données de référence, exploration de l'environnement SSMS
Module 2 — Requêtes avancées et manipulation des données (4h)
  • Rappels SELECT : filtrage WHERE, tri ORDER BY, alias, DISTINCT
  • Jointures avancées : INNER JOIN, LEFT/RIGHT/FULL OUTER JOIN, CROSS JOIN, self-join — choisir selon le besoin
  • Sous-requêtes : corrélées, non corrélées, dans SELECT/FROM/WHERE, EXISTS vs IN
  • Agrégation avancée : GROUP BY, HAVING, GROUPING SETS, ROLLUP, CUBE
  • Fonctions de fenêtrage (Window Functions) : ROW_NUMBER, RANK, DENSE_RANK, NTILE, LAG, LEAD, FIRST_VALUE, LAST_VALUE
  • Expressions de table communes (CTE) : WITH, CTE récursives pour hiérarchies et structures arborescentes
  • Requêtes combinées : UNION, UNION ALL, INTERSECT, EXCEPT
  • Manipulation des données : INSERT (simple, multi-lignes, INSERT INTO SELECT), UPDATE avec jointure, DELETE, TRUNCATE
  • L'instruction MERGE : synchronisation de tables source/cible en une seule commande
  • Travaux pratiques : écriture d'une série de requêtes analytiques sur le fil rouge — top 10 clients par chiffre d'affaires avec ROW_NUMBER, calcul de la variation mensuelle des ventes avec LAG, extraction de la hiérarchie des catégories produits avec CTE récursive, synchronisation d'une table de stock avec MERGE
Module 3 — Vues et programmation structurée T-SQL (3h)
  • Vues (Views) : création, modification, suppression — cas d'usage, sécurité et limites
  • Vues indexées (Materialized Views) : principes et conditions d'utilisation
  • Variables T-SQL : DECLARE, SET, SELECT, portée et durée de vie
  • Structures de contrôle : IF/ELSE, CASE (expression et recherché), WHILE, BREAK, CONTINUE
  • Traitement par lots (Batches) et instruction GO
  • Tables temporaires : locales , globales et variables de table (table) — différences et cas d'usage
  • SQL dynamique : EXEC et sp_executesql — construction et exécution de requêtes dynamiques, injection SQL et protection
  • Travaux pratiques : création des vues métier du fil rouge (vue commandes en cours, vue performance commerciale par région), écriture de scripts T-SQL structurés avec variables et structures de contrôle, premier script de SQL dynamique sécurisé
Module 4 — Procédures stockées et fonctions (4h)
  • Procédures stockées : principes, avantages (performance, sécurité, maintenabilité), création avec CREATE PROCEDURE
  • Paramètres d'entrée, paramètres de sortie (OUTPUT), valeurs par défaut
  • Procédures stockées système : sp_help, sp_depends, sp_who2 — explorer les métadonnées
  • Recompilation et plan d'exécution : WITH RECOMPILE, OPTION(RECOMPILE)
  • Fonctions scalaires (Scalar Functions) : retournent une valeur unique — CREATE FUNCTION
  • Fonctions table (Table-Valued Functions) : inline (TVF) et multi-instructions (MTVF) — quand utiliser laquelle
  • Bonnes pratiques : nommage, commentaires, gestion des paramètres optionnels, éviter les anti-patterns (fonctions scalaires sur grandes tables)
  • SET NOCOUNT ON et autres options d'optimisation des objets
  • Travaux pratiques : développement d'un ensemble cohérent de procédures et fonctions sur le fil rouge — procédure de création de commande avec paramètres et valeurs de retour, fonction scalaire de calcul de remise, TVF des commandes d'un client sur une période
Module 5 — Gestion des erreurs, transactions et déclencheurs (4h)
  • Transactions : BEGIN TRANSACTION, COMMIT, ROLLBACK — garantir l'intégrité des données
  • Transactions imbriquées et SAVE TRANSACTION : points de sauvegarde
  • Niveaux d'isolation des transactions : READ UNCOMMITTED, READ COMMITTED, REPEATABLE READ, SERIALIZABLE, SNAPSHOT
  • Gestion des erreurs avec TRY/CATCH : structure, variables ERROR, ERROR_MESSAGE(), ERROR_NUMBER(), ERROR_LINE()
  • THROW vs RAISERROR : différences et bonnes pratiques 2026
  • Déclencheurs DML (Triggers) : AFTER et INSTEAD OF — CREATE TRIGGER, tables virtuelles INSERTED et DELETED
  • Déclencheurs DDL : surveiller les modifications de structure de la base
  • Bonnes pratiques triggers : quand les utiliser, pièges courants (performance, récursivité, ordre d'exécution)
  • Débogage T-SQL dans SSMS : breakpoints, pas à pas, inspection des variables
  • Travaux pratiques : implémentation d'un trigger d'audit complet sur le fil rouge (journal des modifications de prix), gestion transactionnelle d'une procédure de passation de commande avec TRY/CATCH et ROLLBACK automatique en cas d'erreur
Module 6 — Index, performances et optimisation (4h)
  • Structure des index SQL Server : index cluster (clustered) vs non cluster (non-clustered), index couvrant (covering)
  • Choisir sa stratégie d'indexation : analyse des requêtes fréquentes, colonnes candidates
  • Index filtrés et index sur colonnes calculées : cas d'usage
  • Plans d'exécution : lecture et interprétation dans SSMS (Estimated vs Actual Execution Plan)
  • Opérateurs coûteux à identifier : Table Scan, Index Scan vs Index Seek, Key Lookup, Hash Join vs Nested Loops
  • Statistiques SQL Server : leur rôle, mise à jour, impact sur les plans d'exécution
  • Vues de gestion dynamique (DMV) pour l'analyse des performances : sys.dm_exec_query_stats, sys.dm_exec_requests, sys.dm_db_missing_index_details
  • Conseils d'optimisation pratiques : réécriture de requêtes, SARGabilité, éviter les fonctions dans les clauses WHERE
  • Maintenance des index : fragmentation, REBUILD vs REORGANIZE
  • Travaux pratiques : session d'optimisation sur le fil rouge — identification des requêtes lentes avec les DMV, lecture et comparaison de plans d'exécution avant/après indexation, mesure des gains avec SET STATISTICS TIME/IO

Équipe pédagogique

Professionnel expert technique et pédagogique.