SELECT produit, prix FROM produits;Antisèche SQL
Retrouvez la bonne syntaxe, puis pratiquez-la.
Onze repères progressifs, des premières lectures aux fonctions fenêtre.
1. Lire et choisir
Contrôlez précisément les colonnes et lignes retournées.
SELECT DISTINCT categorie FROM produits;LIMIT 102. Filtrer
Réduisez le périmètre avant d’analyser.
WHERE montant > 100WHERE ville IN ('Tunis', 'Sfax')WHERE montant BETWEEN 50 AND 2003. Trier
Rendez un classement explicite et reproductible.
ORDER BY date_commande ASCORDER BY montant DESCORDER BY ville ASC, montant DESC4. Agréger
Transformez des lignes en indicateurs.
COUNT(*)SUM(montant)GROUP BY villeHAVING SUM(montant) > 5005. Relier des tables
Associez des entités grâce à leurs clés.
INNER JOIN commandes c ON c.id_client = clients.id_clientLEFT JOIN commandes c ON c.id_client = clients.id_client6. Gérer NULL
Une absence de valeur n’est ni zéro ni une chaîne vide.
WHERE telephone IS NULLCOALESCE(telephone, 'Non renseigné')montant / NULLIF(quantite, 0)7. Structurer une analyse
Décomposez une requête longue en étapes nommées.
WITH ventes_ville AS (...) SELECT * FROM ventes_ville;CASE WHEN montant >= 200 THEN 'Élevé' ELSE 'Standard' END8. Analyser dans le temps
Préparez les indicateurs avancés du métier de Data Analyst.
DATE_TRUNC('month', date_commande)SUM(montant) OVER (ORDER BY date_commande)ROW_NUMBER() OVER (PARTITION BY ville ORDER BY montant DESC)9. Manipuler du texte
Nettoyez et assemblez des libellés sans perdre les valeurs absentes.
CONCAT(prenom, ' ', nom)LOWER(email)TRIM(reference)SUBSTRING(code FROM 1 FOR 3)10. Comprendre l’ordre et les erreurs
SQL évalue logiquement FROM, WHERE, GROUP BY, HAVING, SELECT, ORDER BY puis LIMIT.
Vérifier le schéma et l’orthographeRegrouper ou agréger chaque colonne sélectionnéeUtiliser NULLIF(diviseur, 0)Vérifier virgules, parenthèses et guillemets simples11. Repérer les différences de syntaxe
Une même opération peut s’écrire différemment selon l’outil utilisé.
Ici et MySQL : LIMIT · SQL Server : TOPIci : || · MySQL : CONCAT · SQL Server : +Ici : CURRENT_DATE · MySQL : CURDATE() · SQL Server : GETDATE()La syntaxe se mémorise en pratiquant.
Utilisez l’éditeur libre ou choisissez un exercice guidé avec validation.