Vous êtes sur la page 1sur 5

SQL - Restriction

Septembre 2015
1. Expression des restrictions
1. Restrictions simples
2. Restriction sur une comparaison de chane
3. Restriction sur un ensemble
4. Restriction sur les valeurs manquantes

Expression des restrictions


Une restriction consiste slectionner les lignes satisfaisant une condition logique effectue sur leurs
attributs. En SQL, les restrictions s'expriment l'aide de la clause WHERE suivie d'une condition logique
exprime l'aide d'oprateurs logiques
AND
OR
NOT
de comparateurs de chane :
IN
BETWEEN
LIKE
d'oprateurs arithmtiques :
+
-

/
%
&
|
^
~
et de comparateurs arithmtiques :
=
!=
>
<

>=
<=
<>
!>
!<

Restrictions simples
Soit la table suivante, prsentant 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

7845 ZS 83

75600

Peugeot 106

KID

Peugeot 309

chorus 7647 ABY 82 189500

Ford

Match

Escort

8562 EV 23

Le champ prsentant la valeur du kilomtrage au compteur de la Ford


Escort est dlibrment non renseign.
La slection de toutes les voitures d'occasion ayant un kilomtrage infrieur 100 000 Km se fait par
l'instruction :
SELECT * FROM OCCAZ
WHERE (Compteur < 100000)

Rsultat
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 slection des colonnes Marque et Compteur des voitures ayant un kilomtrage infrieur 100 000
Km se fait par l'instruction :
SELECT Marque,Compteur FROM OCCAZ
WHERE (Compteur < 100000)

Rsultat
Marque Compteur

Renault

56000

Renault

12000

Peugeot 75600
La slection de toutes les voitures d'occasion ayant un kilomtrage infrieur ou gal 100 000 Km, et
suprieur ou gal 30000Km, se fait par l'instruction :
SELECT * FROM OCCAZ
WHERE (Compteur <= 100000) AND (Compteur >= 30000)

Rsultat
Marque Modele Serie
Renault

Kangoo RL

Peugeot 106

KID

Numero

Compteur

4568 HD 16 56000
7845 ZS 83 75600

Restriction sur une comparaison de chane


Le prdicat LIKE permet de faire des comparaisons sur des chaines grce
des caractres, appels caractres jokers :
Le caractre % permet de remplacer une squence de caractres (ventuellement nulle)
La caractre _ permet de remplacer un caractre (l'quivalent du "blanc" au scrabble...)
Les caractres [-] permettent de dfinir un intervalle de caractres (par exemple [J-M])
La slection des voitures dont la marque a un E en deuxime position se fait par l'instruction :
SELECT * FROM OCCAZ
WHERE Marque LIKE "_E%"

Rsultat
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

7845 ZS 83

75600

Peugeot 106

KID

Peugeot 309

chorus 7647 ABY 82 189500

Suivant l'environnement ou vous utilisez ce prdicat, il sera peut-tre ncessaire d'"chapper"


les guillemets avec un caractre d'chappement (gnralement la barre oblique inverse "\").

Restriction sur un ensemble


Les prdicats BETWEEN et IN permettent de vrifier respectivement qu'une valeur se trouve dans un
intervalle ou qu'une valeur appartient une liste de valeurs :
La slection de toutes les voitures d'occasion ayant un kilomtrage infrieur ou gal 100 000 Km,
mais suprieur ou gal 30000Km, (effectue plus haut avec des comparateurs arithmtiques) peut se
faire par l'instruction :
SELECT * FROM OCCAZ WHERE Compteur BETWEEN 100000 AND 30000

Rsultat
Marque Modele Serie
Renault

Kangoo RL

Peugeot 106

KID

Numero

Compteur

4568 HD 16 56000
7845 ZS 83 75600

La slection des voitures d'occasion dont la marque est Peugeot ou Ford se fait grce l'instruction :
SELECT * FROM OCCAZ
WHERE Marque IN ("Peugeot", "Ford")

Rsultat
Marque Modele

Serie

Numero

Peugeot 106

KID

Peugeot 309

chorus 7647 ABY 82 189500

Ford

Match

Escort

7845 ZS 83

Compteur
75600

8562 EV 23

Restriction sur les valeurs manquantes


Lorsqu'un champ n'est pas renseign, le SGBD lui attribue une valeur spciale que l'on note NULL. La
recherche de cette valeur ne peut pas se faire l'aide des oprateurs standards, il faut utiliser les prdicats
IS NULL ou bien IS NOT NULL.
La slection de toutes les voitures d'occasion dont le kilomtrage n'est pas renseign se fait par
l'instruction :
SELECT * FROM OCCAZ
WHERE Compteur IS NULL

Rsultat
Marque Modele Serie
Ford

Escort

Prcdent
1

Numero

Match 8562 EV 23

Compteur

2
3
4
5
6
7
8
9
10
Suivant

Ralis sous la direction de Jean-Franois PILLOU,


fondateur de CommentCaMarche.net.
Ce document intitul SQL - Restriction issu de CommentCaMarche (www.commentcamarche.net) est mis disposition sous les
termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixes par la
licence, tant que cette note apparat clairement.