IN, BETWEEN, LIKE
IN teste l'appartenance à une liste, BETWEEN un intervalle bornes comprises, LIKE un motif de texte avec jokers. Ces trois opérateurs raccourcissent les conditions répétitives de WHERE.
- appartenance
- intervalle
- motif
- pattern
- joker
- ESCAPE
Syntaxe
WHERE col IN (v1, v2, v3)WHERE col BETWEEN borne_min AND borne_maxWHERE col LIKE 'motif%'Exemple
SELECT name, category, priceFROM productsWHERE category IN ('Informatique', 'Audio') AND price BETWEEN 50 AND 100 AND name NOT LIKE 'Webcam%'ORDER BY price;-- Jeu de données : boutique-- Résultat attendu :-- Enceinte Bluetooth | Audio | 79.99-- Clavier mécanique | Informatique | 89.99À retenir
- Jokers de LIKE : % remplace zéro, un ou plusieurs caractères, _ exactement un. Pour chercher un vrai %, déclarez un caractère d'échappement : LIKE '%10!%%' ESCAPE '!'.
- Piège : BETWEEN inclut ses deux bornes. Sur des dates avec heure, BETWEEN '2024-03-01' AND '2024-03-31' exclut '2024-03-31 14:00'. Préférez order_date >= '2024-03-01' AND order_date < '2024-04-01'.
- Piège : dans SQLite, LIKE ignore la casse pour les lettres ASCII seulement ('a' = 'A' mais 'é' <> 'É'). PostgreSQL est sensible à la casse et propose ILIKE.
- Un motif qui commence par % (LIKE '%souris') ne peut pas utiliser d'index : toute la table est parcourue.
Voir aussi
- WHEREWHERE ne garde que les lignes qui vérifient une condition, avant tout regroupement. C'est le filtre de base pour cibler un client, une période, un statut ou une plage de valeurs.
- EXISTS & IN (sous-requête)EXISTS vérifie qu'une sous-requête renvoie au moins une ligne, IN qu'une valeur figure dans sa liste. Tous deux répondent à « a-t-il au moins un… ? » sans dupliquer les lignes comme le ferait un JOIN.
- Piège NOT IN et NULLNOT IN renvoie zéro ligne dès que sa sous-requête contient un NULL, sans aucun message d'erreur. Pour chercher des éléments absents d'une autre table, NOT EXISTS donne toujours le bon résultat.
- Fonctions texteLes fonctions texte nettoient, découpent et assemblent les chaînes : mettre en majuscules, retirer des espaces, extraire un domaine d'e-mail. Indispensables avant de comparer ou de dédoublonner.