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

Exemple
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

Exemple
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').
  • ◆LIMIT et OFFSET servent à 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.