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.
- Notions
- Questions
- Ranger et relier
- 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 / 60en 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;`6348
Voir la réponse
6AND 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 cse lita OR (b AND c).Voir la réponse
Dans une condition, AND est évalué avant OR : sans parenthèses,
a OR b AND cse lita 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.