Apprendre le SQL : par où commencer ?
Mis à jour le
Tu veux apprendre le SQL mais tu ne sais pas par où commencer ? Ce guide te donne un ordre clair pour les 16 notions à connaître, de la première requête SELECT aux fonctions de fenêtre, avec pour chacune une fiche de cours et des exercices corrigés. Aucun logiciel à installer : tout se pratique dans ton navigateur.
Qu’est-ce que le SQL ?
Le SQL (Structured Query Language) est le langage qui sert à interroger les bases de données relationnelles : des données rangées en tables, avec des lignes et des colonnes, comme un tableur mais en beaucoup plus grand. On l’utilise pour lire, filtrer, regrouper et croiser ces données. PostgreSQL, MySQL, SQLite, SQL Server ou Oracle parlent tous SQL, avec de petites différences de syntaxe.
C’est une compétence demandée bien au-delà des développeurs : data analysts, chefs de produit, marketing, finance… Dès qu’on travaille avec des données, savoir écrire une requête fait gagner des heures.
Combien de temps faut-il pour apprendre le SQL ?
Les bases (lire, filtrer, trier, regrouper, joindre deux tables) s’apprennent en quelques semaines avec un peu de pratique chaque jour : vingt minutes régulières valent mieux que trois heures une fois par mois. Les notions avancées, comme les CTE et les fonctions de fenêtre, demandent ensuite quelques semaines de plus. Le plus important n’est pas de lire, mais d’écrire des requêtes.
Étape 1 : lire des données
Commence par apprendre à choisir des colonnes, filtrer des lignes et trier le résultat. C’est la base de toutes les autres requêtes.
- SELECT, alias, DISTINCT : choisir les colonnes. Fiche · exercices corrigés
- WHERE : filtrer les lignes (=, >, BETWEEN, IN, LIKE). Fiche · exercices corrigés
- ORDER BY, LIMIT : trier et garder les premières lignes. Fiche · exercices corrigés
Étape 2 : résumer les données
Ensuite, apprends à calculer des totaux, des moyennes et des comptes, globalement puis par groupe.
- COUNT, SUM, AVG, MIN, MAX : les agrégats. Fiche · exercices corrigés
- GROUP BY : un résumé par groupe. Fiche · exercices corrigés
- HAVING : filtrer les groupes. Fiche · exercices corrigés
Étape 3 : combiner plusieurs tables
C’est l’étape qui fait vraiment la différence : les données utiles sont presque toujours réparties sur plusieurs tables.
- JOIN : relier deux tables. Fiche · exercices corrigés
- Sous-requêtes : une requête dans une requête. Fiche · exercices corrigés
- NULL, COALESCE : gérer les valeurs manquantes. Fiche · exercices corrigés
- CASE : des conditions ligne par ligne. Fiche · exercices corrigés
- UNION, INTERSECT, EXCEPT : combiner des résultats. Fiche · exercices corrigés
- EXISTS : tester l’existence de lignes liées. Fiche · exercices corrigés
Étape 4 : aller plus loin
Ces notions distinguent les profils confirmés et reviennent souvent en entretien.
- Texte et dates : UPPER, SUBSTR, LIKE, strftime… Fiche · exercices corrigés
- CTE (WITH) : découper une requête complexe en étapes. Fiche · exercices corrigés
- Fonctions de fenêtre (OVER) : classements, cumuls, comparaisons avec la ligne précédente. Fiche · exercices corrigés
- CTE récursives : suites et hiérarchies. Fiche · exercices corrigés
Le cours complet en 20 niveaux
Chaque niveau du cours a sa page : la leçon, la syntaxe, un exemple commenté avec son résultat, les points à retenir, les pièges fréquents et les énoncés de ses 5 exercices.
Débutant
- Lire une table avec SELECT : Afficher les colonnes que tu veux d'une table, les renommer et en calculer de nouvelles.
- Filtrer les lignes avec WHERE : Ne garder que les lignes qui respectent une condition.
- Combiner des conditions : Écrire des filtres à plusieurs conditions et chercher dans du texte.
- Trier, limiter, dédoublonner : Présenter les résultats dans l'ordre voulu, n'en garder que les premiers et supprimer les doublons.
- Résumer une table : les agrégats : Calculer un total, une moyenne, un minimum ou un nombre de lignes sur toute une table.
- Travailler le texte et les dates : Transformer du texte et extraire des informations des dates.
Intermédiaire
- Regrouper avec GROUP BY : Calculer un agrégat pour chaque groupe de lignes : total par vendeur, moyenne par matière…
- Filtrer les groupes avec HAVING : Ne garder que les groupes qui respectent une condition sur un agrégat.
- Relier deux tables avec JOIN : Combiner les informations de deux tables liées par un identifiant.
- LEFT JOIN et jointures multiples : Garder les lignes sans correspondance, enchaîner plusieurs jointures et joindre une table à elle-même.
- Conditions dans le résultat : CASE : Calculer une valeur différente selon une condition, et compter des lignes par catégorie.
- Gérer les valeurs manquantes (NULL) : Comprendre le comportement de NULL et remplacer les valeurs manquantes.
- Combiner des résultats : UNION, INTERSECT, EXCEPT : Empiler, croiser ou soustraire les résultats de deux requêtes.
Pro
- Requêtes dans les requêtes : sous-requêtes : Utiliser le résultat d'une requête à l'intérieur d'une autre.
- EXISTS et sous-requêtes corrélées : Tester l'existence de lignes liées et comparer chaque ligne à son propre groupe.
- Structurer avec WITH (CTE) : Découper une requête complexe en étapes nommées et lisibles.
- Fonctions de fenêtre : classer : Numéroter et classer des lignes sans les regrouper, globalement ou dans chaque groupe.
- Fonctions de fenêtre : cumuls et moyennes : Afficher un total de groupe, un cumul ou une part du total à côté de chaque ligne.
- Fonctions de fenêtre : LAG, LEAD et cadres : Comparer une ligne à la précédente ou à la suivante, et calculer sur une fenêtre glissante.
- Requêtes récursives : WITH RECURSIVE : Générer des séries et parcourir des hiérarchies de profondeur inconnue.
Pratiquer un peu chaque jour
Lire un cours ne suffit pas : c’est en écrivant des requêtes, en se trompant puis en corrigeant, qu’on retient. Trois façons de pratiquer avec SpeedQL :
- l’apprentissage progressif : 20 niveaux, chacun avec une leçon et 5 exercices, pour avancer pas à pas ;
- les exercices personnalisés : sans chrono, sur les notions que tu choisis, avec indices ;
- la partie chronométrée : pour gagner en vitesse une fois les bases acquises.
Les erreurs les plus fréquentes au début
- Écrire
colonne = NULLau lieu decolonne IS NULL: la comparaison avec NULL n’est jamais vraie. - Afficher une colonne dans SELECT sans la mettre dans GROUP BY ni dans un agrégat.
- Mettre une condition sur COUNT ou SUM dans WHERE au lieu de HAVING.
- Oublier la condition ON d’une jointure, ce qui combine toutes les lignes entre elles.
- Utiliser NOT IN avec une sous-requête qui peut renvoyer NULL : préfère NOT EXISTS.
Et après ?
Une fois les 16 notions pratiquées, installe une vraie base (SQLite ou PostgreSQL, gratuits) et interroge un jeu de données qui t’intéresse : sport, films, tes propres dépenses… Si tu prépares un entretien, révise les questions d’entretien SQL corrigées, et garde l’aide-mémoire SQL sous la main, avec son tableau des différences entre SQLite, PostgreSQL et MySQL.
Commencer maintenant
Ta première requête t’attend : gratuit, sans inscription, directement dans ton navigateur.