Apprendre le SQL : par où commencer ?

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.

Étape 2 : résumer les données

Ensuite, apprends à calculer des totaux, des moyennes et des comptes, globalement puis par groupe.

É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.

Étape 4 : aller plus loin

Ces notions distinguent les profils confirmés et reviennent souvent en entretien.

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

  1. Lire une table avec SELECT : Afficher les colonnes que tu veux d'une table, les renommer et en calculer de nouvelles.
  2. Filtrer les lignes avec WHERE : Ne garder que les lignes qui respectent une condition.
  3. Combiner des conditions : Écrire des filtres à plusieurs conditions et chercher dans du texte.
  4. Trier, limiter, dédoublonner : Présenter les résultats dans l'ordre voulu, n'en garder que les premiers et supprimer les doublons.
  5. Résumer une table : les agrégats : Calculer un total, une moyenne, un minimum ou un nombre de lignes sur toute une table.
  6. Travailler le texte et les dates : Transformer du texte et extraire des informations des dates.

Intermédiaire

  1. Regrouper avec GROUP BY : Calculer un agrégat pour chaque groupe de lignes : total par vendeur, moyenne par matière…
  2. Filtrer les groupes avec HAVING : Ne garder que les groupes qui respectent une condition sur un agrégat.
  3. Relier deux tables avec JOIN : Combiner les informations de deux tables liées par un identifiant.
  4. LEFT JOIN et jointures multiples : Garder les lignes sans correspondance, enchaîner plusieurs jointures et joindre une table à elle-même.
  5. Conditions dans le résultat : CASE : Calculer une valeur différente selon une condition, et compter des lignes par catégorie.
  6. Gérer les valeurs manquantes (NULL) : Comprendre le comportement de NULL et remplacer les valeurs manquantes.
  7. Combiner des résultats : UNION, INTERSECT, EXCEPT : Empiler, croiser ou soustraire les résultats de deux requêtes.

Pro

  1. Requêtes dans les requêtes : sous-requêtes : Utiliser le résultat d'une requête à l'intérieur d'une autre.
  2. EXISTS et sous-requêtes corrélées : Tester l'existence de lignes liées et comparer chaque ligne à son propre groupe.
  3. Structurer avec WITH (CTE) : Découper une requête complexe en étapes nommées et lisibles.
  4. Fonctions de fenêtre : classer : Numéroter et classer des lignes sans les regrouper, globalement ou dans chaque groupe.
  5. Fonctions de fenêtre : cumuls et moyennes : Afficher un total de groupe, un cumul ou une part du total à côté de chaque ligne.
  6. 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.
  7. 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 :

Les erreurs les plus fréquentes au début

  • Écrire colonne = NULL au lieu de colonne 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.

Commencer par SELECT