SpeedQL — Exercices SQL chronométrés

Apprends le SQL. Pratique le SQL. Monte de niveau.

Partie chronométrée · 1 min · +30 s par bonne réponse

SpeedQL : des exercices SQL chronométrés dans ton navigateur

Avec SpeedQL, les exercices SQL deviennent un jeu : de vraies tables, une consigne courte et une minute au compteur pour écrire la requête qui y répond. C’est gratuit, sans compte à créer, et un moteur SQLite exécute chaque requête directement dans ton navigateur : tu sais tout de suite si tu as juste. Les débutants commencent par SELECT et WHERE ; les plus aguerris poussent leur série jusqu’aux fonctions de fenêtre et aux CTE récursives. Dans tous les cas, tu t’entraînes au SQL en écrivant de vraies requêtes, pas en cochant des QCM.

  • 376 questions écrites à la main
  • 100 modèles de questions à variables
  • 16 notions SQL
  • 12 thèmes de données
  • 3 modes de jeu
  • 0 inscription

Tu hésites entre plusieurs façons d’apprendre en jouant ? Notre comparatif des meilleurs jeux SQL situe SpeedQL par rapport aux grands classiques.

Comment fonctionne le jeu SQL chronométré

Une partie se lance en quelques secondes et dure tant que tu enchaînes les bonnes réponses. Voici son déroulé :

  1. Clique sur « Commencer ». Après un compte à rebours 3-2-1, le chrono démarre à 1:00.
  2. Lis la consigne et les tables d’exemple, écris ta requête dans l’éditeur, puis exécute-la avec le bouton Exécuter ou Ctrl + Entrée.
  3. Si ton résultat correspond au résultat attendu, ton score monte de 1 et tu gagnes 30 secondes. Ta requête est aussi rejouée sur un second jeu de données caché : une réponse recopiée « en dur » ne passe pas.
  4. Toutes les 5 bonnes réponses, tu montes d’un niveau et les questions se corsent : des filtres simples aux jointures, sous-requêtes, CTE et fonctions de fenêtre.
  5. Dès le niveau 5, une erreur coûte 5 secondes. « Passer » te donne une autre question contre 10 secondes et sans point ; c’est refusé s’il reste moins de 10 secondes.
  6. Quand le chrono tombe à zéro, la partie s’arrête. Tu vois tes 5 meilleures parties, une estimation de ton classement et la réponse attendue à la dernière question : chaque partie t’apprend quelque chose.

Ton score, c’est tout simplement le nombre de bonnes réponses.

Trois façons de t’entraîner au SQL

Partie chronométrée

Le mode principal : une minute au départ, 30 secondes de plus par bonne réponse, un niveau de plus toutes les 5 bonnes réponses. Idéal pour gagner en vitesse et en réflexes. Lancer une partie chronométrée.

Exercices SQL personnalisés

Coche les notions que tu veux travailler, des jointures aux fonctions de fenêtre, et entraîne-toi sans chrono. L’indice en deux étapes te donne la notion à utiliser, puis la forme de la requête, et tu peux afficher la réponse attendue si tu bloques. Choisir tes notions SQL.

Exercice SQL du jour

Une question numérotée par jour, la même pour tout le monde, du niveau 2 au niveau 8 sur un cycle de 7 jours. Réussis-la pour faire durer ta série de jours. Relever l’exercice du jour.

16 notions SQL pour t’entraîner

Chaque question est rattachée aux notions SQL qu’elle mobilise, et chaque lien ci-dessous ouvre les exercices personnalisés avec la notion déjà cochée. Les questions s’appuient sur 12 thèmes de données réalistes : entreprise (employés, ventes, factures), films, bibliothèque, football, école, vols et aéroports, musique en streaming, météo, hôtels, boutique en ligne, gestion de projets et banque.

  • SELECT, alias, DISTINCT : choisir les colonnes à afficher, les renommer et supprimer les doublons.
  • WHERE : ne garder que les lignes qui vérifient une condition, avec =, <, BETWEEN, IN ou LIKE. La plupart des vraies questions commencent par un filtre.
  • ORDER BY, LIMIT : trier le résultat et garder les premières lignes, la recette de tous les « top 3 » et « les plus récents ».
  • COUNT, SUM, AVG, MIN, MAX : résumer beaucoup de lignes en un seul nombre. C’est ainsi qu’on répond à « combien ».
  • GROUP BY : calculer un résumé par groupe, comme le chiffre d’affaires par région.
  • JOIN : relier des tables par une colonne commune, y compris avec LEFT JOIN pour garder les lignes sans correspondance. Les vraies données sont presque toujours réparties sur plusieurs tables.
  • HAVING : filtrer les groupes après GROUP BY, par exemple les services de plus de trois personnes.
  • Sous-requêtes : utiliser le résultat d’une requête dans une autre, pour comparer chaque ligne à une moyenne ou à une liste.
  • CASE : écrire des « si… alors » dans une requête pour étiqueter des lignes ou les ranger par tranches.
  • NULL, COALESCE : gérer les valeurs manquantes sans piège, avec IS NULL plutôt que = NULL et des valeurs par défaut grâce à COALESCE.
  • UNION, INTERSECT, EXCEPT : combiner les résultats de deux requêtes, garder ce qu’ils ont en commun ou ce qui les distingue.
  • Texte et dates : nettoyer et formater les données avec UPPER, SUBSTR et LIKE, et extraire l’année ou le mois d’une date.
  • CTE (WITH) : découper une longue requête en étapes nommées qui se lisent de haut en bas.
  • EXISTS : tester l’existence de lignes liées, la façon sûre de trouver les clients qui n’ont jamais commandé.
  • Fonctions de fenêtre (OVER) : classer des lignes, calculer des cumuls et comparer une ligne à la précédente, sans regrouper.
  • CTE récursives : générer des suites et parcourir des hiérarchies, comme un organigramme.

Chaque notion a sa fiche dans l’aide-mémoire SQL.

Deux exercices SQL corrigés

Voici deux vraies questions de la banque de SpeedQL, une facile et une moyenne.

Facile : filtrer une table

Consigne : Affiche le nom et le salaire des employés du département Finance.

SELECT name, salary
FROM employees
WHERE department = 'Finance';

WHERE ne garde que les lignes du département Finance, et SELECT ne garde que les deux colonnes demandées. Les valeurs texte s’écrivent entre apostrophes droites.

Moyenne : joindre deux tables

Consigne : Affiche le nom de chaque client avec le montant de chacune de ses commandes.

SELECT customers.name, orders.amount
FROM customers
INNER JOIN orders ON customers.id = orders.customer_id;

La jointure associe chaque commande à son client grâce à customers.id = orders.customer_id. Un client qui a passé trois commandes apparaît sur trois lignes, et un client sans commande n’apparaît pas, car INNER JOIN ne garde que les correspondances.

Tu en veux d’autres ? Parcours les 196 exercices corrigés, classés par notion.

À qui s’adressent ces exercices SQL ?

  • Aux grands débutants : le niveau 1 commence par SELECT et WHERE, et le mode personnalisé permet d’apprendre sans chrono, avec des indices.
  • Aux étudiants en BUT informatique, BTS SIO, écoles d’ingénieurs ou de commerce, qui doivent pratiquer pour leurs examens et leurs projets.
  • Aux futurs data analysts qui préparent un entretien technique, où savoir écrire vite une requête juste fait la différence. Nos questions d’entretien SQL passent en revue les classiques.
  • Aux développeurs qui passent leurs journées derrière un ORM et veulent garder la main sur le SQL, quelques minutes par jour.

Pourquoi s’entraîner avec un chronomètre

Le chrono change ta façon de pratiquer. Il te pousse à écrire la requête tout de suite au lieu de relire le cours, et c’est comme ça que la syntaxe devient automatique. Des séances courtes réparties sur plusieurs jours, comme l’exercice du jour, t’aident à retenir davantage qu’une longue séance unique. Et en entretien technique ou en réunion, tu as rarement le temps de tout vérifier : écrire un JOIN ou un GROUP BY sans hésiter, c’est exactement le réflexe que la partie chronométrée entraîne.

Questions fréquentes sur SpeedQL

Qu’est-ce que SpeedQL ?

SpeedQL est un jeu gratuit pour apprendre et pratiquer le SQL : tu résous des questions en écrivant de vraies requêtes, contre la montre ou à ton rythme. Il réunit 376 questions écrites à la main et 100 modèles de questions à variables, sur 16 notions SQL.

SpeedQL est-il vraiment gratuit ?

Oui. Tous les modes, toutes les questions et tous les indices sont gratuits, sans version payante ni publicité ciblée.

Faut-il créer un compte ?

Non. Pas d’inscription ni de connexion : tu ouvres la page et tu joues.

Quel moteur SQL SpeedQL utilise-t-il ?

SQLite, compilé en JavaScript avec sql.js, qui tourne directement dans ton navigateur. Les requêtes de lecture (SELECT, avec ou sans WITH) sont acceptées, et rien n’est envoyé à un serveur.

Ma progression est-elle sauvegardée ?

Oui, dans ton navigateur, sur cet appareil : ton record, tes meilleures parties, ta série de jours, tes exercices du jour réussis et tes réglages d’affichage. Rien n’est synchronisé entre appareils, mais le menu Fichier permet d’exporter ta progression dans un fichier et de l’importer ailleurs.

SpeedQL marche-t-il sur mobile ?

Oui, l’affichage s’adapte aux téléphones et aux tablettes. Taper du SQL reste plus confortable avec un vrai clavier, et une fois chargé, le jeu fonctionne aussi hors ligne.

Existe-t-il d’autres jeux SQL ?

Oui : SQL Murder Mystery, SQL Island, SQL Noir et SQLZoo ont chacun leur style. Nous les comparons honnêtement dans notre sélection des meilleurs jeux SQL.

SpeedQL