WHERE prédicats
Utilise une clause WHERE pour limiter l'effet d'une instruction SELECT ou UPDATE à un sous-ensemble de lignes dans la table. L'utilisation d'une clause WHERE est facultative.
La valeur d'une clause WHERE est une ou plusieurs expressions logiques, ou prédicats, qui évaluent à TRUE ou FALSE chaque nouvelle ligne dans la table. Seules les lignes où le prédicat est évalué à TRUE sont extraites par une instruction SELECT ou modifiées par une instruction UPDATE. Par exemple, l'instruction SELECT ci-dessous, extrait toutes les lignes où la colonne ETAT contient la valeur "CA".
SELECT société, état
FROM client
WHERE état = "CA"
Les prédicats multiples doivent être séparés par un des opérateurs logiques OR ou AND. Chaque prédicat peut être nié au moyen de l'opérateur NOT. Les parenthèses peuvent être utilisées pour isoler des comparaisons logiques et regrouper des comparaisons pour générer des critères d'évaluation de lignes différents. Par exemple, l'instruction SELECT ci-dessous extrait toutes les lignes où la colonne ETAT contient une valeur "CA" ou celles dont la valeur est "HI".
SELECT société, état
FROM client
The SELECT statement below retrieves all rows where the SHAPE column is "round" or "square", but only if the the COLOR column also contains "red". It would not retrieve rows where, for example, the SHAPE is "round" and the COLOR "blue".
L'instruction SELECT ci-dessous extrait toutes les lignes où la colonne FORME est "rond" ou "carré" mais seulement pour les lignes où la colonne COULEUR est "rouge", indépendamment de la valeur dans la colonne FORME.
SELECT forme, couleur, coût
FROM objets
WHERE ((forme = "rond") OR (forme = "carré")) AND
(couleur = "rouge")
Mais sans les parenthèses pour redéfinir la priorité des opérateurs logiques, comme dans l'instruction suivante, le résultat est très différent. Cette instruction obtient les lignes où FORME est "rond", sans tenir compte la colonne COULEUR. Elle renvoie également les lignes où la colonne FORME est "carré", mais seulement si la colonne COULEUR contient "rouge". A la différence de la versionprécédente de cette instruction, celle-ci renvoie les lignes où FORME vaut "rond" et COULEUR "bleue".
SELECT forme, couleur, coût
FROM objets
WHERE forme = "rond" OR forme = "carré" AND
couleur = "rouge"
Les références de colonnes ne peuvent pas être passées à la clause WHERE au moyen de paramètres. Des valeurs de comparaison peuvent être passées comme paramètres.
Remarque Une clause WHERE filtre les données avant l'agrégation d'une clause GROUP BY. Pour un filtrage basé sur des valeurs agrégées, utilisez une clause HAVING.
Applicabilité
SELECT (avec des colonnes non agrégées), UPDATE