Back-end · 5 mondes · 15 étapes
Bases de données & SQL
Interroger, relier, modifier et concevoir des données, avec une vraie base SQLite.
Progression
0 %
0/15 étapes terminées
Fondamental · 8 min de lecture
Penser en ensembles
SQL décrit le résultat, pas le chemin
1Définition
SQL est un langage déclaratif : on décrit l'ensemble de lignes voulu, et la base choisit elle-même comment le calculer. Une requête s'écrit dans un ordre fixe — SELECT, FROM, WHERE, GROUP BY, HAVING, ORDER BY, LIMIT — mais s'exécute dans un autre.
2Principes fondamentaux
01
Des colonnes explicites
SELECT pseudo, score plutôt que SELECT * : la requête dit ce dont elle a besoin, et ne casse pas quand la table gagne une colonne.
02
L'ordre n'existe pas sans ORDER BY
Une table est un ensemble, sans ordre. Le seul ordre garanti est celui qu'on demande.
03
Guillemets simples pour les textes
'Yaoundé' est une valeur ; "ville" désigne une colonne.
04
L'ordre d'exécution réel
FROM, WHERE, GROUP BY, HAVING, SELECT, ORDER BY, LIMIT : c'est lui qui explique pourquoi un alias du SELECT est inconnu dans le WHERE.
3Exemples pratiques
Une requête complète
1SELECT pseudo, score2FROM joueurs3WHERE score > 10004ORDER BY score DESC5LIMIT 3;Chaque clause affine la précédente : la table, les lignes retenues, leur ordre, puis la coupe.
Les dates en texte
1SELECT pseudo, inscrit2FROM joueurs3WHERE inscrit BETWEEN '2026-02-01' AND '2026-02-28'4ORDER BY inscrit;Le format AAAA-MM-JJ se compare et se trie correctement comme du texte : c'est pour cela qu'il est universel.
4Erreurs courantes
Des guillemets doubles pour un texte
À éviter
WHERE ville = "Yaoundé"À faire
WHERE ville = 'Yaoundé'Pourquoi : Selon la base, les doubles désignent une colonne : la requête échoue ou, pire, compare deux colonnes.
Compter sur un ordre implicite
À éviter
SELECT pseudo FROM joueurs LIMIT 3;À faire
SELECT pseudo FROM joueurs ORDER BY score DESC LIMIT 3;Pourquoi : Sans ORDER BY, les « trois premiers » changent au gré du moteur.
SELECT * en production
À éviter
SELECT * FROM joueurs;À faire
SELECT id, pseudo FROM joueurs;Pourquoi : On transfère des colonnes inutiles, et l'application casse quand la table évolue.
5Subtilités à connaître
- ◆Les mots-clés sont insensibles à la casse ; les valeurs texte, elles, le sont généralement (
'codey'≠'Codey'). - ◆
LIMITetOFFSETservent à la pagination, mais un grand OFFSET oblige la base à parcourir toutes les lignes sautées. - ◆Le point-virgule sépare les instructions : une seule requête peut s'en passer, un script non.
6Vérifie ta compréhension
Question 1/3
Score 0
Qu'est-ce qui garantit l'ordre des lignes ?
Envie d'essayer ? Ouvre le Labo et recopie les exemples pour les modifier.