🛢️Parcours Fioul GroupéMySQL · Chapitre 02
Accueil › MySQL › Chapitre 02
Chapitre 02 / 16

Récupérer des données

Le cœur du SQL : la requête SELECT. Choisir des colonnes, filtrer les lignes avec WHERE et ses opérateurs, trier, dédoublonner et paginer.

1 Notion

La requête SELECT

On choisit quelles colonnes (SELECT) et dans quelle table (FROM). Un calcul peut recevoir un alias avec AS.

SELECT * FROM campagne;                    -- tout (exploration)
SELECT libelle, prix_litre FROM campagne;  -- colonnes précises
SELECT libelle, prix_litre * 1000 AS prix_1000L FROM campagne;
Évitez SELECT * en production — nommer les colonnes rend la requête lisible, stable si la table évolue, et transfère moins de données.
2 Notion

Filtrer avec WHERE

WHERE ne garde que les lignes qui satisfont une condition. Opérateurs : =, <>, <, <=, >, >=, combinés par AND, OR, NOT.

SELECT * FROM campagne WHERE statut = 'OUVERTE';
SELECT * FROM campagne WHERE prix_litre < 1.10;
SELECT * FROM campagne
WHERE commune = 'Ladignac-le-Long' AND statut = 'OUVERTE';
Priorité — AND passe avant OR. En cas de doute, mettez des parenthèses pour clarifier l'intention.
3 Notion

IN, BETWEEN, LIKE, IS NULL

OpérateurExemple
INcommune IN ('Ladignac','Nexon')
BETWEENprix_litre BETWEEN 1.00 AND 1.20
LIKEnom LIKE 'Du%' (%=suite, _=1 car.)
IS NULLemail IS NULL
NULL ≠ valeur — NULL signifie « inconnu ». WHERE email = NULL ne renvoie jamais rien : il faut IS NULL / IS NOT NULL.
4 Notion

ORDER BY, DISTINCT, LIMIT

SELECT libelle, prix_litre FROM campagne ORDER BY prix_litre ASC;
SELECT DISTINCT commune FROM campagne;          -- sans doublon
SELECT * FROM campagne ORDER BY prix_litre LIMIT 3;      -- top 3
SELECT * FROM campagne ORDER BY id LIMIT 10 OFFSET 20;   -- pagination
Ordre d'exécution — le moteur traite FROM → WHERE → GROUP BY → SELECT → ORDER BY → LIMIT. C'est pourquoi un alias du SELECT est utilisable dans ORDER BY mais pas dans WHERE.
🛢️ Sur le projet Fioul Groupé

Écran « campagnes ouvertes de ma commune », trié du meilleur prix au moins bon — exactement ce que l'appli mobile affiche :

SELECT libelle, prix_litre, date_cloture
FROM campagne
WHERE commune = 'Ladignac-le-Long' AND statut = 'OUVERTE'
ORDER BY prix_litre ASC;
À retenir
← Chapitre 01