Cours SQL et MySQL · Module 3: Filtrer (WHERE)
Combiner plusieurs conditions en pratique
Dans cette leçon4
Tu connais déjà tous les outils du scribe : les comparaisons, AND/OR/NOT, IN, BETWEEN, LIKE et IS NULL. Il est temps de les combiner en une seule requête puissante. C'est ici que la véritable puissance du Scriptorium se révèle.
Deux conditions avec AND
La combinaison la plus simple est deux conditions réunies par l'opérateur AND. Nous pouvons combiner différents outils - par exemple un intervalle BETWEEN avec une comparaison :
1SELECT * FROM ksiazki
2WHERE rok_wydania BETWEEN 1990 AND 2020
3 AND dostepna = 1;Cela signifie : « Des livres publiés entre 1990 et 2020 ET disponibles en même temps ».
Combiner différents opérateurs
Les opérateurs peuvent être librement mélangés. Ici, un intervalle de prix rencontre une liste de catégories :
1SELECT * FROM ksiazki
2WHERE cena BETWEEN 20 AND 80
3 AND kategoria_id IN (1, 2);Cela signifie : « Des livres au prix de 20 à 80 pièces, appartenant à la catégorie 1 ou 2 ».
Trois conditions à la fois
Nous pouvons réunir jusqu'à trois conditions - un intervalle, une liste et un motif :
1SELECT * FROM ksiazki
2WHERE cena BETWEEN 20 AND 80
3 AND kategoria_id IN (1, 2)
4 AND tytul LIKE 'O%';Cette requête renverra les livres au prix de 20 à 80 pièces, de la catégorie 1 ou 2, dont le titre commence par O. Trois conditions en une !
La lisibilité compte
Quand il y a de nombreuses conditions, il vaut mieux écrire chacune sur une ligne séparée et les indenter sous WHERE. La requête devient ainsi aussi lisible qu'un parchemin bien écrit. N'oublie pas non plus les parenthèses quand tu mélanges AND avec OR. Entraîne-toi à combiner - c'est la clé de la maîtrise !
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. Que va renvoyer la requête : SELECT * FROM ksiazki WHERE cena BETWEEN 20 AND 80 AND kategoria_id IN (1, 2) ?
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 entre 1990 et 2020 (BETWEEN) ET disponibles en même temps (dostepna égal à 1).
- Tri vertical
Ordonne les lignes d'une requête de filtrage complexe (de la première à la dernière ligne) :