Démarrage, modèle relationnel, outillage SQL [2h]
- Revoir tables, lignes, colonnes, dépendances fonctionnelles
- Distinguer clé primaire, clé étrangère, cardinalités
- Situer SQL et principaux dialectes (Oracle, SQL Server, PostgreSQL, MySQL)
- Identifier schéma, catalogue, sessions, transactions
- (ATELIER) Cartographier un mini-modèle et ses relations
Définir données avec DDL et contraintes [2h30]
- Choisir types de données et règles de domaine
- Créer tables avec PRIMARY KEY et FOREIGN KEY
- Appliquer contraintes NOT NULL, UNIQUE, CHECK
- Comprendre intégrité référentielle et actions ON DELETE
- Travaux pratiques : créer un schéma “gestion de commandes” avec contraintes
Vues, index et performances de base [2h]
- Différencier table, vue, matérialisation selon SGBD
- Créer des vues pour simplifier l’accès aux données
- Comprendre index B-tree et impacts sur WHERE/JOIN
- Éviter anti-patterns : index inutiles, SELECT *
- (ATELIER) Diagnostiquer requêtes lentes et proposer un index
Modifier données et maîtriser l’intégrité [2h]
- Insérer avec INSERT et INSERT…SELECT
- Mettre à jour avec UPDATE et conditions robustes
- Supprimer avec DELETE et contraintes associées
- Introduire transactions : COMMIT, ROLLBACK, verrous simples
- Travaux pratiques : rejouer un lot de corrections avec transaction contrôlée
SELECT essentiel pour extraire l’information [3h]
- Projeter colonnes, alias, expressions calculées
- Filtrer avec WHERE, opérateurs, BETWEEN, IN, LIKE
- Gérer NULL : IS NULL, COALESCE, logique ternaire
- Trier avec ORDER BY et expressions
- Travaux pratiques : répondre à 10 questions métier sur le jeu de données
Fonctions SQL et manipulation de dates [2h]
- Utiliser fonctions chaînes : CONCAT, SUBSTRING, TRIM
- Convertir types : CAST, formatage, contrôles
- Manipuler dates : extraction, intervalles, comparaisons
- Appliquer fonctions conditionnelles : CASE WHEN
- (ATELIER) Produire un reporting mensuel à partir d’événements horodatés
Jointures et relations entre tables [3h30]
- Choisir INNER, LEFT, RIGHT, FULL selon besoin
- Définir clés de jointure et éviter les produits cartésiens
- Utiliser auto-jointures et tables de correspondance
- Comprendre l’impact des filtres sur LEFT JOIN
- Travaux pratiques : construire une vue “client-commande-livraison” multi-tables
Agrégation, regroupement et post-filtrage [2h30]
- Regrouper avec GROUP BY et colonnes calculées
- Calculer SUM, AVG, MIN, MAX, COUNT distinct
- Post-filtrer avec HAVING et conditions d’agrégats
- Construire des indicateurs : taux, paniers, délais moyens
- (ATELIER) Créer un tableau d’indicateurs et vérifier sa cohérence
Sous-requêtes, ensemblistes et SQL avancé [1h30]
- Écrire sous-requêtes corrélées et non corrélées
- Structurer avec CTE (WITH) pour lisibilité
- Combiner résultats : UNION, INTERSECT, EXCEPT
- Introduire rôles, droits, procédures stockées selon contexte
- Travaux pratiques : résoudre un cas “détection d’anomalies” avec CTE et ensemblistes