Plus facile à lire avec un fond crème, une teinte, plus de contraste ou un texte plus grand ? Choisissez vos couleurs et votre texte, une fois pour toutes les pages.

Leçon gratuite

Trouver les lignes qui comptent

Après cette leçon: Je peux utiliser SQL pour trouver les lignes qui remplissent une condition.

Leçon de 45 minAucune commande

Quelles commandes reste-t-il à préparer ?

Vous venez d'entrer au service client de Cycles Loire, une boutique en ligne de vélos à Nantes. Une cliente appelle : son antivol n'est toujours pas arrivé.

Votre responsable vous demande quelles commandes sont payées mais pas encore parties. Toutes les commandes sont dans une base de données. Vous pourriez les parcourir une par une. Vous pouvez aussi poser une seule question courte à la base.

À la fin de cette leçon

Remarque

Je peux utiliser SQL pour trouver les lignes qui remplissent une condition.

Mots clés

MotCe que ça veut direExemple
Tabledes données rangées en lignes et en colonnes
Ligneun enregistrement, par exemple une commande
Colonneune information que chaque ligne possède
Requêteune question posée à la base de données
Conditionun test que chaque ligne réussit ou ratestatut = 'payee'
SQLle langage pour interroger une base de données

Les cellules que les étudiants remplissent restent vides dans cet aperçu.

SELECT dit quelles colonnes afficher

Une base de données range ses informations dans des tables. La boutique a une table commandes. Chaque ligne est une commande.

Une requête commence par SELECT. Ensuite, vous nommez les colonnes voulues, séparées par des virgules. FROM dit quelle table lire. L'étoile * veut dire toutes les colonnes. Une requête SELECT lit seulement. Elle ne modifie jamais la table.

Essayez : choisir les colonnes

Code: sql
-- Toutes les colonnes de toutes les commandes.
SELECT * FROM commandes;

-- Seulement les deux colonnes utiles au transporteur.
SELECT client, ville FROM commandes;

WHERE filtre les lignes

SELECT choisit les colonnes. WHERE choisit les lignes.

Après WHERE, vous écrivez une condition. La base teste chaque ligne avec cette condition. Elle garde les lignes qui la remplissent et écarte les autres. Ainsi, WHERE statut = 'payee' garde seulement les commandes payées.

Essayez : seulement les commandes payées

Code: sql
-- Les commandes payées mais pas encore expédiées.
-- Dans cette base, les statuts sont écrits sans accent.
SELECT id, client, montant FROM commandes
WHERE statut = 'payee';

-- Remplacez 'payee' par 'expediee', puis relancez.

Exemple détaillé : WHERE statut = 'payee'

CommandestatutGardée ?
1expedieeNon
2payeeOui
3payeeOui
4expedieeNon
5payeeOui
6annuleeNon
7payeeOui

Les cellules que les étudiants remplissent restent vides dans cet aperçu.

Une erreur fréquente

Attention

Beaucoup pensent que WHERE ville = Nantes fonctionne. C'est faux. Un texte s'écrit entre apostrophes : ville = 'Nantes'. Sans elles, la base cherche une colonne appelée Nantes. Un nombre s'écrit sans apostrophes : montant > 100.

AND et OR combinent deux tests

Une vraie question a souvent deux parties. « Les commandes payées de plus de 100 euros » contient deux tests.

AND garde une ligne seulement si les deux tests réussissent. OR garde une ligne si l'un des deux réussit. Pour les nombres, > veut dire plus grand que et < plus petit que.

Essayez : deux tests à la fois

Code: sql
-- Les commandes payées de plus de 100 euros.
SELECT id, client, montant FROM commandes
WHERE statut = 'payee' AND montant > 100;

-- Les commandes qui partent à Rennes ou à Brest.
SELECT id, client, ville FROM commandes
WHERE ville = 'Rennes' OR ville = 'Brest';

Vous enseignez à une classe ? Proposez ce module à vos étudiants avec un guide de l'enseignant, des devoirs corrigés et un laboratoire pour chaque étudiant.