Cours SQL et MySQL · Module 3: Filtrer (WHERE)
Combiner les conditions : AND, OR, NOT
Dans cette leçon4
Souvent, une seule condition ne suffit pas. Le scribe veut des parchemins qui sont à la fois récents et disponibles, ou des auteurs venus de Pologne ou de Grèce. Pour combiner des conditions, nous utilisons trois mots : AND, OR et NOT.
AND - les deux conditions à la fois
L'opérateur AND exige que toutes les conditions réunies soient remplies :
1SELECT * FROM ksiazki
2WHERE rok_wydania > 1900 AND dostepna = 1;Cela signifie : « Des livres publiés après 1900 ET disponibles en même temps ». Une ligne n'entre dans le résultat que lorsque les deux conditions sont vraies.
OR - une seule condition suffit
L'opérateur OR exige qu'au moins une des conditions soit remplie :
1SELECT * FROM autorzy
2WHERE kraj = 'Polska' OR kraj = 'Grecja';Cela signifie : « Des auteurs venus de Pologne OU de Grèce ». Il suffit qu'une seule condition soit vraie.
NOT - la négation
L'opérateur NOT inverse une condition - il renvoie ce qui ne la remplit PAS :
1SELECT * FROM ksiazki
2WHERE NOT dostepna = 1;Cela signifie : « Des livres qui ne sont PAS disponibles ».
Les parenthèses - l'ordre compte
Quand nous mélangeons AND et OR, utilise des parenthèses ( ) pour préciser l'ordre. AND a une priorité plus élevée que OR, les parenthèses te protègent donc d'une erreur :
1SELECT * FROM ksiazki
2WHERE (kategoria_id = 1 OR kategoria_id = 2) AND cena > 30;Ici, nous vérifions d'abord la catégorie (l'une des deux), et seulement ensuite le prix. Les parenthèses fonctionnent comme en mathématiques - ce qui est à l'intérieur est calculé en premier. Souviens-t'en !
Tu as repéré une erreur dans cette leçon ?
Teste tes connaissances
Réponds aux questions de cette leçon. Choisis une réponse pour voir tout de suite si elle est correcte.
1. Quelles lignes la condition va-t-elle renvoyer : WHERE rok_wydania > 1900 AND dostepna = 1 ?
2. Quelles lignes la condition va-t-elle renvoyer : WHERE kraj = 'Polska' OR kraj = 'Grecja' ?
Voici 2 des 4 questions de cette leçon. Réponds aux autres dans le jeu.
Tâches pratiques dans le jeu
- Éditeur de code
Écris une requête qui récupère toutes les colonnes de la table ksiazki pour les livres publiés après 1900 (rok_wydania supérieur à 1900) ET disponibles en même temps (dostepna égal à 1).
- Éditeur de code
Écris une requête qui récupère toutes les colonnes de la table ksiazki pour les livres de la catégorie dont kategoria_id vaut 1 ET dont le cena est inférieur à 50.
- Tri vertical
Ordonne les lignes d'une requête filtrant avec deux conditions (de la première à la dernière ligne) :
- Tri horizontal
Ordonne sur une ligne la condition combinant deux exigences avec l'opérateur AND :