Vous êtes sur la page 1sur 38

2

Restreindre et trier les donnes

Copyright 2007, Oracle. Tous droits rservs.

Objectifs
A la fin de ce chapitre, vous pourrez :
limiter les lignes extraites par une interrogation
trier les lignes extraites par une interrogation
utiliser une variable de substitution avec esperluette
d'interprtation pour restreindre et trier les rsultats
lors de l'excution

2-2

Copyright 2007, Oracle. Tous droits rservs.

Contenu du chapitre
Limitation des lignes :
Clause WHERE
Conditions de comparaison utilisant les oprateurs =, <=,
BETWEEN, IN, LIKE et NULL
Conditions logiques utilisant les oprateurs AND, OR et NOT

2-3

Rgles de priorit des oprateurs dans une expression


Tri des lignes l'aide de la clause ORDER BY
Variables de substitution
Commandes DEFINE et VERIFY

Copyright 2007, Oracle. Tous droits rservs.

Limiter les lignes par slection

EMPLOYEES

"extraire tous les


employs du
dpartement 90"

2-4

Copyright 2007, Oracle. Tous droits rservs.

Limiter les lignes slectionnes


Limitez les lignes renvoyes l'aide de la clause WHERE :
SELECT *|{[DISTINCT] column|expression [alias],...}
FROM
table
[WHERE condition(s)];

La clause WHERE suit la clause FROM.

2-5

Copyright 2007, Oracle. Tous droits rservs.

Utiliser la clause WHERE

SELECT employee_id, last_name, job_id, department_id


FROM
employees
WHERE department_id = 90 ;

2-6

Copyright 2007, Oracle. Tous droits rservs.

Chanes de caractres et dates


Les chanes de caractres et les dates sont indiques
entre apostrophes.
Dans les chanes de caractres, les majuscules sont
distingues des minuscules. Les dates doivent respecter
un format spcifique.
Le format par dfaut d'affichage de la date est DD-MON-RR.
SELECT last_name, job_id, department_id
FROM
employees
WHERE last_name = 'Whalen' ;
SELECT last_name
FROM
employees
WHERE hire_date = '17-FEB-96' ;

2-7

Copyright 2007, Oracle. Tous droits rservs.

Oprateurs de comparaison
Oprateur
=

Egal

>

Suprieur

>=

Suprieur ou gal

<

2-8

Signification

Infrieur

<=

Infrieur ou gal

<>

Non gal

BETWEEN
...AND...

Compris entre deux valeurs


(incluses)

IN(set)

Correspond une valeur quelconque d'une liste

LIKE

Correspond un modle

IS NULL

Est une valeur NULL

Copyright 2007, Oracle. Tous droits rservs.

Utiliser des oprateurs de comparaison

SELECT last_name, salary


FROM
employees
WHERE salary <= 3000 ;

2-9

Copyright 2007, Oracle. Tous droits rservs.

Indication d'une plage l'aide


de l'oprateur BETWEEN
Utilisez l'oprateur BETWEEN pour afficher des lignes
sur la base d'une plage de valeurs :
SELECT last_name, salary
FROM
employees
WHERE salary BETWEEN 2500 AND 3500 ;
Limite infrieure

2 - 10

Limite suprieure

Copyright 2007, Oracle. Tous droits rservs.

Condition d'appartenance l'aide


de l'oprateur IN
Utilisez l'oprateur IN pour rechercher les valeurs d'une liste :
SELECT employee_id, last_name, salary, manager_id
FROM
employees
WHERE manager_id IN (100, 101, 201) ;

2 - 11

Copyright 2007, Oracle. Tous droits rservs.

Correspondance avec un modle l'aide


de l'oprateur LIKE
Utilisez l'oprateur LIKE pour effectuer des recherches
avec des caractres gnriques.
Les conditions de recherche peuvent contenir
des caractres ou des nombres littraux :
% indique zro ou plusieurs caractres.
_ indique un caractre.
SELECT
FROM
WHERE

2 - 12

first_name
employees
first_name LIKE 'S%' ;

Copyright 2007, Oracle. Tous droits rservs.

Combiner des caractres gnriques


Vous pouvez combiner les deux caractres gnriques
(%, _) avec des caractres littraux pour dfinir le modle
rechercher :
SELECT last_name
FROM
employees
WHERE last_name LIKE '_o%' ;

Pour effectuer une recherche sur les caractres % et _,


utilisez l'identificateur ESCAPE.

2 - 13

Copyright 2007, Oracle. Tous droits rservs.

Utiliser les conditions NULL


Recherchez les valeurs NULL avec l'oprateur IS NULL.
SELECT last_name, manager_id
FROM
employees
WHERE manager_id IS NULL ;

2 - 14

Copyright 2007, Oracle. Tous droits rservs.

Dfinir des conditions l'aide


des oprateurs logiques

2 - 15

Oprateur

Signification

AND

Renvoie TRUE si les deux conditions sont


vraies

OR

Renvoie TRUE si l'une ou l'autre des


conditions est vraie

NOT

Renvoie TRUE si la condition est fausse

Copyright 2007, Oracle. Tous droits rservs.

Utiliser l'oprateur AND


AND requiert que les deux conditions soient vraies :
SELECT
FROM
WHERE
AND

2 - 16

employee_id, last_name, job_id, salary


employees
salary >= 10000
job_id LIKE '%MAN%' ;

Copyright 2007, Oracle. Tous droits rservs.

Utiliser l'oprateur OR
OR requiert que l'une ou l'autre des conditions soit vraie :
SELECT
FROM
WHERE
OR

2 - 17

employee_id, last_name, job_id, salary


employees
salary >= 10000
job_id LIKE '%MAN%' ;

Copyright 2007, Oracle. Tous droits rservs.

Utiliser l'oprateur NOT

SELECT last_name, job_id


FROM
employees
WHERE job_id
NOT IN ('IT_PROG', 'ST_CLERK', 'SA_REP') ;

2 - 18

Copyright 2007, Oracle. Tous droits rservs.

Contenu du chapitre
Limitation des lignes :
Clause WHERE
Conditions de comparaison utilisant les oprateurs =, <=,
BETWEEN, IN, LIKE et NULL
Conditions logiques utilisant les oprateurs AND, OR et NOT

2 - 19

Rgles de priorit des oprateurs dans une expression


Tri des lignes l'aide de la clause ORDER BY
Variables de substitution
Commandes DEFINE et VERIFY

Copyright 2007, Oracle. Tous droits rservs.

Rgles de priorit

Oprateur

Signification

Oprateurs arithmtiques

Oprateur de concatnation

Conditions de comparaison

IS [NOT] NULL, LIKE, [NOT] IN

[NOT] BETWEEN

Non gal

Condition logique NOT

Condition logique AND

Condition logique OR

Vous pouvez utiliser des parenthses pour modifier


les rgles de priorit.
2 - 20

Copyright 2007, Oracle. Tous droits rservs.

Rgles de priorit

2 - 21

SELECT
FROM
WHERE
OR
AND

last_name, job_id, salary


employees
job_id = 'SA_REP'
job_id = 'AD_PRES'
salary > 15000;

SELECT
FROM
WHERE
OR
AND

last_name, job_id, salary


employees
(job_id = 'SA_REP'
job_id = 'AD_PRES')
salary > 15000;

Copyright 2007, Oracle. Tous droits rservs.

Contenu du chapitre
Limitation des lignes :
Clause WHERE
Conditions de comparaison utilisant les oprateurs =, <=,
BETWEEN, IN, LIKE et NULL
Conditions logiques utilisant les oprateurs AND, OR et NOT

2 - 22

Rgles de priorit des oprateurs dans une expression


Tri des lignes l'aide de la clause ORDER BY
Variables de substitution
Commandes DEFINE et VERIFY

Copyright 2007, Oracle. Tous droits rservs.

Utiliser la clause ORDER BY


Triez les lignes extraites l'aide de la clause ORDER BY :
ASC : ordre croissant (par dfaut)
DESC : ordre dcroissant

La clause ORDER BY vient en dernire place dans l'instruction


SELECT :
SELECT
last_name, job_id, department_id, hire_date
FROM
employees
ORDER BY hire_date ;

2 - 23

Copyright 2007, Oracle. Tous droits rservs.

Tri
Tri par ordre dcroissant :
SELECT
last_name, job_id, department_id, hire_date
FROM
employees
1
ORDER BY hire_date DESC ;

Tri par alias de colonne :


SELECT employee_id, last_name, salary*12 annsal
FROM
employees
ORDER BY annsal ;

2 - 24

Copyright 2007, Oracle. Tous droits rservs.

Tri
Tri selon une colonne repre par sa position numrique :
SELECT
last_name, job_id, department_id, hire_date
FROM
employees
3
ORDER BY 3;

Tri en fonction de plusieurs colonnes :


SELECT last_name, department_id, salary
FROM
employees
ORDER BY department_id, salary DESC;

2 - 25

Copyright 2007, Oracle. Tous droits rservs.

Contenu du chapitre
Limitation des lignes :
Clause WHERE
Conditions de comparaison utilisant les oprateurs =, <=,
BETWEEN, IN, LIKE et NULL
Conditions logiques utilisant les oprateurs AND, OR et NOT

2 - 26

Rgles de priorit des oprateurs dans une expression


Tri des lignes l'aide de la clause ORDER BY
Variables de substitution
Commandes DEFINE et VERIFY

Copyright 2007, Oracle. Tous droits rservs.

Variables de substitution

... salary = ?
department_id = ?
... last_name = ? ...
Je veux
interroger
diffrentes
valeurs.

2 - 27

Copyright 2007, Oracle. Tous droits rservs.

Variables de substitution
Utilisez des variables de substitution pour :
stocker temporairement des valeurs (variables de substitution
avec esperluette d'interprtation simple (&) ou double (&&))

Utilisez des variables de substitution pour remplacer :

2 - 28

des conditions WHERE


des clauses ORDER BY
des expressions de colonne
des noms de table
des instructions SELECT entires

Copyright 2007, Oracle. Tous droits rservs.

Utiliser une variable de substitution


avec esperluette simple
Utilisez une variable comprenant une esperluette
d'interprtation (&) comme prfixe pour inviter l'utilisateur
entrer une valeur :
SELECT employee_id, last_name, salary, department_id
FROM
employees
WHERE employee_id = &employee_num ;

2 - 29

Copyright 2007, Oracle. Tous droits rservs.

Utiliser une variable de substitution


avec esperluette simple

2 - 30

Copyright 2007, Oracle. Tous droits rservs.

Chanes de caractres et dates


avec variables de substitution
Utilisez des apostrophes pour les dates et les chanes
de caractres :
SELECT last_name, department_id, salary*12
FROM
employees
WHERE job_id = '&job_title' ;

2 - 31

Copyright 2007, Oracle. Tous droits rservs.

Indiquer des noms de colonne,


des expressions et du texte
SELECT employee_id, last_name, job_id,&column_name
FROM
employees
WHERE &condition
ORDER BY &order_column ;

2 - 32

Copyright 2007, Oracle. Tous droits rservs.

Utiliser une variable de substitution


avec esperluette double
Utilisez l'esperluette d'interprtation double (&&) si vous
souhaitez rutiliser la valeur de la variable sans solliciter
l'utilisateur chaque fois :
SELECT
employee_id, last_name, job_id, &&column_name
FROM
employees
ORDER BY &column_name ;

2 - 33

Copyright 2007, Oracle. Tous droits rservs.

Contenu du chapitre
Limitation des lignes :
Clause WHERE
Conditions de comparaison utilisant les oprateurs =, <=,
BETWEEN, IN, LIKE et NULL
Conditions logiques utilisant les oprateurs AND, OR et NOT

2 - 34

Rgles de priorit des oprateurs dans une expression


Tri des lignes l'aide de la clause ORDER BY
Variables de substitution
Commandes DEFINE et VERIFY

Copyright 2007, Oracle. Tous droits rservs.

Utiliser la commande DEFINE


Utilisez la commande DEFINE pour crer et affecter une
valeur une variable.
Utilisez la commande UNDEFINE pour supprimer une
variable.
DEFINE employee_num = 200
SELECT employee_id, last_name, salary, department_id
FROM
employees
WHERE employee_id = &employee_num ;
UNDEFINE employee_num

2 - 35

Copyright 2007, Oracle. Tous droits rservs.

Utiliser la commande VERIFY


Utilisez la commande VERIFY pour basculer de l'affichage
d'une variable de substitution avant son remplacement par une
valeur l'affichage de cette variable aprs son remplacement :
SET VERIFY ON
SELECT employee_id, last_name, salary
FROM
employees
WHERE employee_id = &employee_num;

2 - 36

Copyright 2007, Oracle. Tous droits rservs.

Synthse
Ce chapitre vous a permis d'apprendre :
utiliser la clause WHERE pour restreindre les lignes
de rsultat :
utiliser les conditions de comparaison
utiliser les oprateurs BETWEEN, IN, LIKE et NULL
appliquer les oprateurs logiques AND, OR et NOT

utiliser la clause ORDER BY pour trier les lignes de rsultat :


SELECT *|{[DISTINCT] column|expression [alias],...}
FROM
table
[WHERE condition(s)]
[ORDER BY {column, expr, alias} [ASC|DESC]] ;

utiliser une variable de substitution avec esperluette


d'interprtation pour restreindre et trier les rsultats lors
de l'excution
2 - 37

Copyright 2007, Oracle. Tous droits rservs.

Prsentation de l'exercice 2
Dans cet exercice, vous allez :
slectionner des donnes et modifier l'ordre des lignes
affiches
restreindre le nombre de lignes l'aide de la clause WHERE
trier les lignes l'aide de la clause ORDER BY
utiliser des variables de substitution pour apporter
de la souplesse vos instructions SQL SELECT

2 - 38

Copyright 2007, Oracle. Tous droits rservs.

Vous aimerez peut-être aussi