Une restriction consiste à sélectionner les lignes satisfaisant à
une condition logique effectuée sur leurs attributs.
 En SQL, les restrictions s'expriment à l'aide de la clause WHERE suivie
d'une condition logique exprimée à l'aide d'opérateurs logiques
 
de comparateurs de chaîne:
d'opérateurs arithmétiques:
et de comparateurs arithmétiques:
 
Soit la table suivante, présentant des voitures d'occasion:
 Occaz
  
| Marque | 
Modele | 
Serie | 
Numero | 
Compteur | 
 
| Renault | 
18 | 
RL | 
4698 SJ 45 | 
123450 | 
 
| Renault | 
Kangoo | 
RL | 
4568 HD 16 | 
56000 | 
 
| Renault | 
Kangoo | 
RL | 
6576 VE 38 | 
12000 | 
 
| Peugeot | 
106 | 
KID | 
7845 ZS 83 | 
75600 | 
 
| Peugeot | 
309 | 
chorus | 
7647 ABY 82 | 
189500 | 
 
| Ford | 
Escort | 
Match | 
8562 EV 23 | 
  | 
 
 
 Le champ présentant la valeur du kilométrage au compteur de la Ford
Escort est délibérément non renseigné.
 
- La sélection de toutes les voitures d'occasion ayant un kilométrage inférieur à 100 000 Km se fait par l'instruction:
SELECT * FROM OCCAZ
WHERE (Compteur < 100000) 
Résultat
  
| Marque | 
Modele | 
Serie | 
Numero | 
Compteur | 
 
| Renault | 
Kangoo | 
RL | 
4568 HD 16 | 
56000 | 
 
| Renault | 
Kangoo | 
RL | 
6576 VE 38 | 
12000 | 
 
| Peugeot | 
106 | 
KID | 
7845 ZS 83 | 
75600 | 
 
 
 
- La sélection des colonnes Marque et Compteur des voitures ayant un kilométrage inférieur à 100 000 Km se fait par l'instruction:
SELECT Marque,Compteur FROM OCCAZ
WHERE (Compteur < 100000) 
Résultat
  
| Marque | 
Compteur | 
 
| Renault | 
56000 | 
 
| Renault | 
12000 | 
 
| Peugeot | 
75600 | 
 
 
 
- La sélection de toutes les voitures d'occasion ayant un kilométrage inférieur ou égal à 100 000 Km, et supérieur ou égal à 30000Km, se fait par l'instruction:
SELECT * FROM OCCAZ
WHERE (Compteur <= 100000) AND (Compteur >= 30000) 
Résultat
  
| Marque | 
Modele | 
Serie | 
Numero | 
Compteur | 
 
| Renault | 
Kangoo | 
RL | 
4568 HD 16 | 
56000 | 
 
| Peugeot | 
106 | 
KID | 
7845 ZS 83 | 
75600 | 
 
 
  
 
 
Le prédicat LIKE permet de faire des comparaisons sur des chaines grâce
à des caractères, appelés caractères jokers:
 
- Le caractère % permet de remplacer une séquence de caractères (éventuellement nulle)
 
- La caractère _ permet de remplacer un caractère (l'équivalent du "blanc" au scrabble...)
 
- Les caractères [-] permettent de définir un intervalle de caractères (par exemple [J-M])
 
 
 
  | 
Suivant l'environnement ou vous utilisez ce prédicat, il sera peut-être nécessaire d'"échapper"
les guillemets avec un caractère d'échappement (généralement la barre oblique inverse "\"). | 
 
 
 
Les prédicats BETWEEN et IN permettent de vérifier
respectivement qu'une valeur se trouve dans un intervalle ou qu'une valeur
appartient à une liste de valeurs:
 
- La sélection de toutes les voitures d'occasion ayant un kilométrage inférieur ou égal à 100 000 Km, mais supérieur ou égal à 30000Km,
(effectuée plus haut avec des comparateurs arithmétiques) peut se faire par l'instruction:
SELECT * FROM OCCAZ
WHERE Compteur BETWEEN 100000 AND 30000 
Résultat
  
| Marque | 
Modele | 
Serie | 
Numero | 
Compteur | 
 
| Renault | 
Kangoo | 
RL | 
4568 HD 16 | 
56000 | 
 
| Peugeot | 
106 | 
KID | 
7845 ZS 83 | 
75600 | 
 
 
 
- La sélection des voitures d'occasion dont la marque est Peugeot ou Ford se fait grâce à l'instruction:
SELECT * FROM OCCAZ
WHERE Marque IN ("Peugeot", "Ford")
Résultat
  
| Marque | 
Modele | 
Serie | 
Numero | 
Compteur | 
 
| Peugeot | 
106 | 
KID | 
7845 ZS 83 | 
75600 | 
 
| Peugeot | 
309 | 
chorus | 
7647 ABY 82 | 
189500 | 
 
| Ford | 
Escort | 
Match | 
8562 EV 23 | 
  | 
 
 
 
 
 
Lorsqu'un champ n'est pas renseigné, le SGBD lui attribue une valeur spéciale
que l'on note NULL. La recherche de cette valeur ne peut pas se faire à l'aide
des opérateurs standards, il faut utiliser les prédicats IS NULL ou bien
IS NOT NULL.
 
  
 
 
 |