SQL
Voici une série d’articles liés au SQL, avec DuckDB ou PostgreSQL :
- Module 1 : Les JOINS
- Module 2 : CTEs (Common Table Expressions)
- Module 3 : Fonctions temporaires & macros en SQL
- Module 4 : Agrégations simples & avancées
- Module 5 : Fonctions Fenêtres & Analytique
- Module 6 : Pivot et Unpivot
- Module 7 : Manipulations & Expressions utiles
- Module 8 : Dates & calendriers
🔧 1. Organisation de l’apprentissage#
Je te propose une approche modulaire, par thème, avec pour chaque module :
- Une fiche mémo : rappels théoriques + syntaxe.
- Des exemples concrets : requêtes issues de cas réels (RH, vente, logs, etc.).
- Des exercices : simples → avancés, avec correction.
- Un challenge final : mini-projet ou cas fil rouge (par ex. : analyse de performances d’une campagne marketing, suivi de commandes, etc.).
🧩 2. Modules que tu peux créer#
Module | Contenu |
---|---|
🧱 Joins (inner, left, right, full, cross, self) | Syntaxes, cas réels (relations clients-commandes), pièges classiques. |
🔁 CTEs (Common Table Expressions) | Requêtes lisibles, récursivité, transformation. |
🧪 Temporary Functions / Macros | SQL Server, BigQuery, Snowflake : quand & comment les utiliser. |
📊 Agrégations avancées | GROUP BY , GROUPING SETS , ROLLUP , CUBE , FILTER . |
🔍 Window Functions | PARTITION BY , ORDER BY , LAG , LEAD , FIRST_VALUE , LAST_VALUE . |
🥇 RANK, DENSE_RANK, ROW_NUMBER | Classements, gestion d’ex-aequo, cas pratiques (top 3 ventes par mois). |
↔️ Pivot / Unpivot | Transformer lignes ↔ colonnes, cas d’usage BI. |
🔧 Manipulations | COALESCE , CASE , CONCAT , NULLIF , expressions conditionnelles. |
📅 Gestion des dates | DATEADD , DATEDIFF , EXTRACT , INTERVAL , formats, calculs temporels. |
🧠 3. Comment t’entraîner concrètement ?#
Bases de données d’exemple#
- PostgreSQL Sample DBs :
dvdrental
,pagila
ounorthwind
. - Mode Analytics SQL Exercises : excellent pour comprendre les jointures, agrégations, window functions.
- LeetCode (Database section) : exercices variés, certains très avancés.
- SQLZoo : interactif, mais un peu rustique.
- DB Fiddle ou SQLite Online : tester tes requêtes rapidement.
📒 4. Outils pour ton mémo#
- Notion / Obsidian : idéal pour centraliser tes fiches, avec des blocs de code.
- HackMD / GitBook / MkDocs : si tu veux un rendu web markdown.
- Jupyter Notebooks + DuckDB : pour exécuter SQL localement dans un environnement Python.
📘 5. Ressources gratuites utiles#
Type | Ressource |
---|---|
Documentation | SQLBolt, Mode SQL Reference, PostgreSQL Docs |
Cheatsheets | DataLemur SQL Cheatsheet, Mode SQL Functions |
Cas pratiques | Kaggle SQL Datasets, StrataScratch |
🧠 Conseil perso#
Pour chaque notion que tu étudies :
- Crée un exemple simple pour vérifier ta compréhension.
- Fais un cas métier réaliste (ex. : ventes mensuelles, taux de churn, profil client).
- Teste une variation complexe (par exemple : auto-jointure récursive, RANK dans une CTE).
Et pour rester motivé, fixe-toi un objectif concret, comme :
- Créer un dashboard alimenté par tes requêtes.
- Préparer une certification (ex: DataLemur, Mode SQL, ou même Google Data Analyst).