Cours CPTIC 157
Bases de données sur Internet
16 et 17 avril 2002

Les opérateurs conditionnels IN et BETWEEN

SELECT colonne1,...
FROM NomDeLaTable
WHERE colonne IN (liste de valeurs)
SELECT colonne1,...
FROM NomDeLaTable
WHERE colonne BETWEEN valeur1 AND valeur2

L'opérateur conditionnel IN est un test d'appartenance à un ensemble de données. Cela signifie que si le contenu du champ précisé dans la clause WHERE figure dans la liste des valeurs fournies après l'opérateur IN, alors cet enregistrement fait partie de la sélection.

Par exemple, la requête suivante sélectionne le numéro d'identification, le prénom, le nom de la table Eleve, ou le nom de l'élève figure parmi la liste 'Bambelle', 'Térieur', 'Coptaire','Trapa'.

SELECT id, prenom, nom
FROM Eleve
WHERE nom IN (
'Bambelle', 'Térieur', 'Coptaire', 'Trapa')

La condition posée par l'opérateur IN peut être réécrite en utilisant une enfilade de OR, qui produira le même résultat:

SELECT id, prenom, nom
FROM Eleve
WHERE nom =
'Bambelle' OR nom = 'Térieur' OR nom = 'Coptaire' OR nom = 'Trapa'

On peut aussi utiliser l'opérateur NOT IN pour exclure des enregistrements de la sélection.

L'opérateur condionnel BETWEEN est utilisé pour vérifier si le contenu du champ spécifé dans la clause WHERE figure entre les deux valeurs précisées après l'opérateur BETWEEN.

Par exemple, pour sélectionner les personnes de la table Eleve dont l'âge est compris entre 20 et 30 ans:

SELECT id, prenom, nom
FROM Eleve
WHERE
age BETWEEN 20 AND 30

Cette requête peut être réécrite avec un AND:

SELECT id, prenom, nom
FROM Eleve
WHERE
age >= 20 AND age <= 30

On peut aussi utiliser l'opérateur conditionnel NOT BETWEEN pour exclure les valeurs qui se trouvent dans l'intervalle.

Exercices:

Soit les tables Client et Commande

  1. Sélectionner la date, l'article et le prix de la table Commande pour tous les article dont le prix est entre 10.-- et 80.--
  2. Sélectionner le prénom, la ville et le canton des clients pour tous les cantons suivants: Genève, Vaud, Fribourg.