Les opérateurs logiques permettent d'effectuer des comparaisons sur des expressions SQL.

expression Opérateur [ expression2 ]

A l'instar des opérateur de comparaison symboliques, les opérateurs logiques provoquent le retour d'une valeur booléenne True ou False.

Souvent, les opérateurs logiques ne comparent pas deux expressions, mais une seule par rapport à une valeur déterminée soit par le type de l'opérateur comme IS NULL, soit par un modèle passé en paramètre comme pour liKE.

Les opérateurs logiques
Opérateur
Description
Expression1 { =, !=, >, <, <=, >=, !<, !> } ALL (Expression2)
retourne True si la comparaison entre les expressions Expression1 et Expression2 est True sur toutes les paires (valeur_Expression1, valeur_Expression2).
Expression1 { =, !=, >, <, <=, >=, !<, !> } ANY | SOME (Expression2)
retourne True si la comparaison entre les expressions Expression1 et Expression2 est True sur quelques paires (valeur_Expression1, valeur_Expression2).
Expression_Test [ NOT ] BETWEEN
Expression_Début AND Expression_Fin = True | False
définit un intervalle sur lequel la recherche doit être appliquée.
EXISTS (Sous-Requête)
retourne True si l'enregistrement pointé par la sous-requête existe.
Expression_Test [ NOT ] IN ( Sous-Requête | Expression )
retourne True si l'expression correspond ou ne correspond pas (NOT) à une des valeurs pointées par la sous-requête ou l'expression.
Expression IS [NOT] NULL
indique si la valeur est nulle ou non-nulle (NOT).
Expression IS [ NOT ] OF Type_Données
retourne True si l'expression possède ou ne possède pas (NOT) le type de donnée indiqué.
Expression [ NOT ] LIKE Modèle [ ESCAPE Caractère_Echappement ]
retourne True si le modèle correspond à l'expression. Le modèle peut comporter des caractères génériques % (n caractères), _ (un caractère), [Caractères] (ex. : [a-z], [abc]) ou [^Caractères] (ex. : [^a-z], [^xzk]) représentant respectivement une chaîne de zéro à plusieurs caractères, n'importe quels caractères, l'inclusion ou l'exclusion d'un à plusieurs caractères. Le caractère d'échappement permet d'inclure un caractère générique précité dans la mise en correspondance.
NOT (Expression)
retourne la valeur booléenne inverse de l'expression.
UNIQUE (Expression)
retourne la valeur booléenne True si l'expression ne possède pas de doublons.
Exemple
SELECT * FROM tbl_personnel
  WHERE age BETWEEN 25 AND 35

SELECT * FROM tbl_personnel
  WHERE email IS NOT NULL

SELECT num_secu_soc FROM tbl_personnel
  WHERE nom LIKE 'M%'

SELECT nom_variable FROM application
  WHERE nom_variable LIKE 'var\_%' ESCAPE '\';
/* introduit le caractère d'échappement '\' 
afin de rechercher des valeurs de champs 
avec le caractère réservé '_'

SELECT nom, prenom, adresse, code_postal FROM personne AS p
WHERE identificateur EXISTS (SELECT num_emp FROM employes)
               AND
               75 = ALL (SELECT dpt FROM employes WHERE num_emp = p.identificateur)
ORDER BY nom, prenom

SELECT titre, genre, realisateur FROM films AS f
WHERE 'Al Pacino' = ANY (SELECT nom FROM acteurs WHERE id_film = f.id_film)

SELECT * FROM personne
WHERE id_personne IN (SELECT id_client FROM clients)