Développement & Algorithmique
SQL avancé
Maîtriser les requêtes complexes et l'optimisation de bases de données
- Durée
- 3 jours
- Public
- Entreprises · Écoles et centres de formation
- Modalité
- Présentiel ou distanciel
- Thèmes
- Bases de données
Demander un devisVoir le programme
Trier, avant le SGBD.
Trieuse de cartes perforées · waelder · CC BY 2.5
À qui s’adresse cette formation
Elle concerne ceux qui écrivent déjà du SQL et se heurtent à des requêtes qui fonctionnent sans qu’on sache bien pourquoi, ou qui deviennent lentes quand les tables grossissent. Développeurs, analystes de données, administrateurs applicatifs, étudiants de niveau Bachelor et au-delà.
Prérequis : connaître SELECT, WHERE, GROUP BY et les jointures
simples. Aucune connaissance d’administration de serveur de bases n’est
nécessaire.
Ce qu’on sait faire à la sortie
Écrire une requête analytique qui répond à une question métier sans passer par un traitement applicatif — un classement par catégorie, un cumul glissant, une comparaison d’une ligne à sa précédente. Lire un plan d’exécution et comprendre pourquoi une requête choisit un index plutôt qu’un autre. Poser une transaction correcte là où plusieurs écritures se croisent. Et reconnaître les cas où une sous-requête corrélée coûte cher, avec l’écriture qui la remplace.
Programme
Requêtes complexes. Sous-requêtes et requêtes corrélées, expressions de table communes (CTE) et CTE récursives, jointures externes, croisées et réflexives. On travaille chaque forme sur un cas où elle est la bonne réponse, et sur un cas où elle ne l’est pas.
Fonctions de fenêtrage. OVER, PARTITION BY, ROW_NUMBER, RANK,
DENSE_RANK, agrégations fenêtrées. C’est la partie qui change le plus la
façon d’écrire : le « top N par groupe », qu’on résout d’ordinaire par une
sous-requête corrélée illisible, tient alors en une requête qu’on relit sans
peine.
Index et plans d’exécution. Ce qu’un index accélère et ce qu’il ralentit,
lecture d’un EXPLAIN, index composites et ordre des colonnes, cas où
l’optimiseur ignore délibérément un index.
Transactions et concurrence. Niveaux d’isolation, verrous, interblocages : comment ils surviennent et comment les éviter.
Procédures stockées, fonctions et vues. Y compris la question qu’on se pose rarement à temps — ce qui a sa place dans la base et ce qui doit rester dans l’application.
Comment se déroule la session
Chaque notion est présentée sur un cas concret, puis mise en pratique immédiatement sur une base de commerce en ligne fournie : catalogue, commandes, clients, avec un volume de données suffisant pour que les différences de performance se voient. La base tourne en conteneur Docker, chacun sur son exemplaire.
Les travaux pratiques sont corrigés en séance, et les corrigés sont remis. Ils comportent, à chaque fois, plusieurs écritures possibles de la même requête : c’est en les comparant qu’on comprend ce que coûte chacune.
Modalités
- Volume : 3 jours (adaptable selon le niveau du groupe)
- Format : présentiel ou distanciel
- Effectif : de préférence en petit groupe, chacun sur sa machine
- Supports : présentations, jeux d’exercices, corrigés commentés et base de données prête à l’emploi, remis en fin de session
ou écrire directement, objet déjà rempli.
Questions fréquentes
Avant de réserver cette formation
- Quel niveau de SQL faut-il avoir avant de venir ?
- Savoir écrire un SELECT avec des conditions, une jointure simple et un GROUP BY suffit. La formation part de là. En revanche, elle n'enseigne pas les bases : un participant qui découvre SQL passera à côté des deux tiers du programme.
- Sur quelle base de données travaille-t-on ?
- Une base MySQL 8 de commerce en ligne, montée en conteneur Docker et fournie avec son schéma et ses données. Chacun travaille sur son exemplaire, ce qui permet de casser une requête sans gêner le voisin. Les concepts valent pour PostgreSQL, les écarts de syntaxe sont signalés.
- Le programme s'adapte-t-il à nos bases à nous ?
- Oui, en intra. Un schéma transmis avant la session sert alors de support aux exercices de la seconde moitié, ce qui rend l'optimisation et les plans d'exécution nettement plus parlants qu'une base d'école.
