Kodokon kodokon.com

SELECT et WHERE : lire et filtrer les données

Apprenez à choisir des colonnes avec SELECT, à filtrer les lignes avec WHERE et à chercher des motifs avec LIKE.

8 min · 3 questions

Ouvrir cette leçon dans Kodokon

Si vous démarrez une nouvelle session, rejouez d'abord le script CREATE TABLE + INSERT de la leçon 1. La requête SELECT lit des données sans jamais les modifier. Après le mot SELECT, vous listez les colonnes à afficher : c'est ce qu'on appelle une projection (choisir les colonnes). Après FROM, vous indiquez la table à lire.

SQL
SELECT title, price FROM books;
Projection : seules les colonnes title et price

Pour ne garder que certaines lignes, ajoutez une clause WHERE suivie d'une condition. Une condition compare une colonne à une valeur grâce à un opérateur : = (égal), <> ou != (différent), < (inférieur), > (supérieur), <= et >=. Rappel : les valeurs textuelles s'écrivent entre apostrophes simples.

SQL
SELECT * FROM books WHERE genre = 'sf';

SELECT title, year FROM books WHERE year < 1950;
La première renvoie 4 lignes, la seconde 4 aussi

Vous pouvez combiner plusieurs conditions : AND exige que les deux soient vraies, OR qu'au moins une le soit, et NOT inverse une condition. En cas de doute sur la priorité, ajoutez des parenthèses.

SQL
SELECT title, price FROM books
WHERE genre = 'sf' AND price < 8;

SELECT title FROM books
WHERE genre = 'conte' OR genre = 'aventure';
AND : 2 lignes (1984, Les Robots) ; OR : 3 lignes

Enfin, l'opérateur LIKE compare un texte à un motif : le joker % remplace n'importe quelle suite de caractères (même vide), et _ remplace exactement un caractère. Par exemple, 'D%' signifie « commence par D » et '%an%' signifie « contient an ».

SQL
SELECT title FROM books WHERE author LIKE 'A%';

SELECT title FROM books WHERE title LIKE 'd%';

SELECT author FROM books WHERE author LIKE 'V_rne';
Auteurs en A, titres commençant par d, puis Verne

Quiz de validation

Vérifiez que vous avez bien retenu les points clés de cette leçon.

  1. Quelle requête affiche uniquement les titres des livres ?
    • SELECT * FROM books;
    • SELECT title FROM books;
    • SELECT books FROM title;
  2. Que renvoie la condition WHERE price < 7 ?
    • Les lignes dont le prix est strictement inférieur à 7
    • Les lignes dont le prix vaut exactement 7
    • Les 7 premières lignes de la table
  3. À quoi correspond le motif LIKE 'D%' ?
    • Les textes qui contiennent la lettre D
    • Les textes qui se terminent par D
    • Les textes qui commencent par D