SELECT et WHERE

Interroger une seule table : choisir des colonnes, des expressions et des alias dans SELECT, puis filtrer les lignes dans WHERE avec les comparaisons, AND, OR, NOT, BETWEEN, IN et LIKE.

  • 24 cartes
  • 4 thèmes
  • Gratuit

Le programme, thème par thème

Le poids de chaque thème suit celui que lui donne l'examen.

  1. Notions
  2. Questions
  3. Ranger et relier
  4. Les chiffres

Quelques cartes du deck

  • Clause SELECT : de quoi s'agit-il ?

    Voir la réponse

    Partie d'une requête qui liste les colonnes ou les expressions à afficher dans chaque ligne du résultat.

    SELECT * rend toutes les colonnes ; SELECT titre, duree / 60 en choisit deux, dont une calculée. Elle ne filtre aucune ligne : c'est le rôle de WHERE.

  • Combien de lignes rend cette requête ?

    ```sql
    -- film : titre, annee, genre, duree
    -- Orbite 2012 SF 125 | Nuit blanche 1998 Drame 88
    -- Zéro absolu 2004 SF 140 | Les Voisins 2015 Comédie 95
    -- Cendres 2021 Drame 110 | Horizon 2010 SF 102
    -- Terminus 1985 SF 85 | Bal masqué 2019 Comédie 82
    SELECT titre FROM film
    WHERE annee > 2000 AND genre = 'SF' OR duree < 90;
    `

    • 6
    • 3
    • 4
    • 8
    Voir la réponse

    6

    AND passe avant OR : la condition est (annee > 2000 AND genre = 'SF') OR duree < 90. Elle garde Orbite, Zéro absolu, Horizon (SF récents) puis Nuit blanche, Terminus et Bal masqué (moins de 90 minutes). Avec des parenthèses autour du OR, on n'aurait que 4 lignes.

  • Dans une condition, … est évalué avant … : sans parenthèses, a OR b AND c se lit a OR (b AND c).

    Voir la réponse

    Dans une condition, AND est évalué avant OR : sans parenthèses, a OR b AND c se lit a OR (b AND c).

    C'est la source d'erreur la plus courante de WHERE : dès qu'on mélange AND et OR, on met des parenthèses.

  • Clause WHERE : de quoi s'agit-il ?

    Voir la réponse

    Partie d'une requête qui ne garde que les lignes pour lesquelles une condition est vraie.

    Une ligne dont la condition est fausse, ou inconnue à cause d'un NULL, est écartée avant tout calcul de SELECT.