Vous êtes sur la page 1sur 28

2

Sélection et Tri des Lignes


Retournées par un SELECT

Copyright  Oracle Corporation, 2003. Tous droits réservés.


Objectifs

A
A la
la fin
fin de
de ce
ce chapitre,
chapitre, vous
vous saurez
saurez ::
•• Limiter
Limiter lele nombre
nombre de
de lignes
lignes retournées
retournées
par
par une
une requête
requête
•• Trier
Trier les
les lignes
lignes retournées
retournées par
par une
une
requête
requête

2-2 Copyright  Oracle Corporation, 2003.Tous droits réservés.


Sélectionner les Lignes
EMP
EMPNO ENAME JOB ... DEPTNO
“…rechercher tous
7839 KING PRESIDENT 10 les employés du
7698 BLAKE MANAGER 30 département 10”
7782 CLARK MANAGER 10
7566 JONES MANAGER 20
...

EMP
EMPNO ENAME JOB ... DEPTNO

7839 KING PRESIDENT 10


7782 CLARK MANAGER 10
7934 MILLER CLERK 10

2-3 Copyright  Oracle Corporation, 2003.Tous droits réservés.


Sélectionner les Lignes

•• Restreindre
Restreindre la
la sélection
sélection au
au moyen
moyen de
de la
la
clause
clause WHERE.
WHERE.
SELECT [DISTINCT] {*, column [alias], ...}
FROM table
[WHERE condition(s)];

•• La
La clause
clause WHERE
WHERE se
se place
place après
après la
la
clause
clause FROM.
FROM.

2-4 Copyright  Oracle Corporation, 2003.Tous droits réservés.


Utilisation de la Clause WHERE

SQL> SELECT ename, job, deptno


2 FROM emp
3 WHERE job='CLERK';

ENAME JOB DEPTNO


---------- --------- ---------
JAMES CLERK 30
SMITH CLERK 20
ADAMS CLERK 20
MILLER CLERK 10

2-5 Copyright  Oracle Corporation, 2003.Tous droits réservés.


Chaînes de Caractères et Dates
•• Les
Les constantes
constantes chaînes
chaînes de
de caractères
caractères etet dates
dates
doivent
doivent être
être placées
placées entre
entre simples
simples quotes.
quotes.
•• La
La recherche
recherche tient
tient compte
compte des
des majuscules
majuscules et et
minuscules
minuscules (pour
(pour les
les chaînes
chaînes de
de caractère)
caractère) et
et
du
du format
format (pour
(pour les
les date.)
date.)
•• Le
Le format
format de
de date
date par
par défaut
défaut est
est 'DD-MON-YY'.
'DD-MON-YY'.

SQL>
SQL> SELECT
SELECT ename,
ename, job,
job, deptno
deptno
22 FROM
FROM emp
emp
33 WHERE
WHERE ename
ename == 'JAMES';
'JAMES';
2-6 Copyright  Oracle Corporation, 2003.Tous droits réservés.
Opérateurs de Comparaison

Opérateur Signification

= Egal à

> Supérieur à

>= Supérieur ou égal à

< Inférieur à

<= Inférieur ou égal à

<> Différent de

2-7 Copyright  Oracle Corporation, 2003.Tous droits réservés.


Utilisation des Opérateurs de
Comparaison

SQL> SELECT ename, sal, comm


2 FROM emp
3 WHERE sal<=comm;

ENAME SAL COMM


---------- --------- ---------
MARTIN 1250 1400

2-8 Copyright  Oracle Corporation, 2003.Tous droits réservés.


Autres Opérateurs de
Comparaison
Opérateur Signification

BETWEEN Compris entre ... et ...


...AND... (bornes comprises)
IN (liste) Correspond à une valeur de la liste
LIKE Ressemblance partielle de chaînes de
caractères
IS NULL Correspond à une valeur NULL

2-9 Copyright  Oracle Corporation, 2003.Tous droits réservés.


Utilisation de l’Opérateur BETWEEN

BETWEEN
BETWEEN permet
permet de
de tester
tester l'appartenance
l'appartenance
àà une
une fourchette
fourchette de
de valeurs.
valeurs.
SQL> SELECT ename, sal
2 FROM emp
3 WHERE sal BETWEEN 1000 AND 1500;

ENAME SAL
---------- --------- Limite Limite
MARTIN 1250
inférieure supérieure
TURNER 1500
WARD 1250
ADAMS 1100
MILLER 1300

2-10 Copyright  Oracle Corporation, 2003.Tous droits réservés.


Utilisation de l’Opérateur IN

IN
IN permet
permet de
de comparer
comparer une
une expression
expression
avec
avec une
une liste
liste de
de valeurs.
valeurs.

SQL> SELECT empno, ename, sal, mgr


2 FROM emp
3 WHERE mgr IN (7902, 7566, 7788);

EMPNO ENAME SAL MGR


--------- ---------- --------- ---------
7902 FORD 3000 7566
7369 SMITH 800 7902
7788 SCOTT 3000 7566
7876 ADAMS 1100 7788

2-11 Copyright  Oracle Corporation, 2003.Tous droits réservés.


Utilisation de l’Opérateur LIKE
•• LIKE
LIKE permetpermet de
de rechercher
rechercher des
des chaînes
chaînes dede
caractères
caractères àà l'aide
l'aide de
de caractères
caractères génériques
génériques
•• Les
Les conditions
conditions de de recherche
recherche peuvent
peuvent contenir
contenir
des
des caractères
caractères ou ou des
des nombres
nombres littéraux.
littéraux.
–– (%)
(%) représente
représente zéro
zéro ou
ou plusieurs
plusieurs caractères
caractères
–– (( __ )) représente
représente un
un caractère
caractère

SQL> SELECT ename


2 FROM emp
3 WHERE ename LIKE 'S%';

2-12 Copyright  Oracle Corporation, 2003.Tous droits réservés.


Utilisation de l’Opérateur LIKE
•• Vous
Vous pouvez
pouvez combiner
combiner plusieurs
plusieurs
caractères
caractères génériques
génériques de
de recherche.
recherche.
SQL> SELECT ename
2 FROM emp
3 WHERE ename LIKE '_A%';

ENAME
----------
JAMES
WARD

•• Vous
Vous pouvez
pouvez utiliser
utiliser l’identifiant
l’identifiant ESCAPE
ESCAPE
pour
pour rechercher
rechercher "%"
"%" ouou "_".
"_".
2-13 Copyright  Oracle Corporation, 2003.Tous droits réservés.
Utilisation de l’Opérateur IS NULL

Recherche
Recherche dede valeurs
valeurs NULL
NULL avec
avec
l’opérateur
l’opérateur IS
IS NULL
NULL

SQL> SELECT ename, mgr


2 FROM emp
3 WHERE mgr IS NULL;

ENAME MGR
---------- ---------
KING

2-14 Copyright  Oracle Corporation, 2003.Tous droits réservés.


Opérateurs Logiques

Opérateur Signification

AND Retourne TRUE si les deux conditions


sont VRAIES
OR Retourne TRUE si l’une au moins des
conditions est VRAIE

NOT Ramène la valeur TRUE si la condition


qui suit l’opérateur est FAUSSE

2-15 Copyright  Oracle Corporation, 2003.Tous droits réservés.


Utilisation de l’Opérateur AND
Avec AND, les deux conditions doivent être
VRAIES.
SQL> SELECT empno, ename, job, sal
2 FROM emp
3 WHERE sal>=1100
4 AND job='CLERK';

EMPNO ENAME JOB SAL


--------- ---------- --------- ---------
7876 ADAMS CLERK 1100
7934 MILLER CLERK 1300

2-16 Copyright  Oracle Corporation, 2003.Tous droits réservés.


Utilisation de l’Opérateur OR
Avec
Avec OR,
OR, l'une
l'une ou
ou l'autre
l'autre des
des deux
deux
conditions
conditions doit
doit être
être VRAIE.
VRAIE.
SQL> SELECT empno, ename, job, sal
2 FROM emp
3 WHERE sal>=1100
4 OR job='CLERK';

EMPNO ENAME JOB SAL


--------- ---------- --------- ---------

7839 KING PRESIDENT 5000


7698 BLAKE MANAGER 2850
7782 CLARK MANAGER 2450
7566 JONES MANAGER 2975
7654 MARTIN SALESMAN 1250
...
14 rows selected.
2-17 Copyright  Oracle Corporation, 2003.Tous droits réservés.
Utilisation de l’Opérateur NOT

SQL> SELECT ename, job


2 FROM emp
3 WHERE job NOT IN ('CLERK','MANAGER','ANALYST');

ENAME JOB
---------- ---------
KING PRESIDENT
MARTIN SALESMAN
ALLEN SALESMAN
TURNER SALESMAN
WARD SALESMAN

2-18 Copyright  Oracle Corporation, 2003.Tous droits réservés.


Règles de Priorité

Ordre de priorité Opérateur


1 Tous les opérateurs
de comparaison
2 NOT
3 AND
4 OR

Les
Les parenthèses
parenthèses permettent
permettent de
de modifier
modifier
les
les règles
règles de
de priorité
priorité

2-19 Copyright  Oracle Corporation, 2003.Tous droits réservés.


Règles de Priorité
SQL> SELECT ename, job, sal
2 FROM emp
3 WHERE job='SALESMAN'
4 OR job='PRESIDENT'
5 AND sal>1500;

ENAME
ENAME JOB
JOB SAL
SAL
----------
---------- ---------
--------- ---------
---------
KING
KING PRESIDENT
PRESIDENT 5000
5000
MARTIN
MARTIN SALESMAN
SALESMAN 1250
1250
ALLEN
ALLEN SALESMAN
SALESMAN 1600
1600
TURNER
TURNER SALESMAN
SALESMAN 1500
1500
WARD
WARD SALESMAN
SALESMAN 1250
1250

2-20 Copyright  Oracle Corporation, 2003.Tous droits réservés.


Règles de Priorité
Utilisation
Utilisation de
de parenthèses
parenthèses pour
pour forcer
forcer
la
la priorité.
priorité.
SQL> SELECT ename, job, sal
2 FROM emp
3 WHERE (job='SALESMAN'
4 OR job='PRESIDENT')
5 AND sal>1500;

ENAME
ENAME JOB
JOB SAL
SAL
----------
---------- ---------
--------- ---------
---------
KING
KING PRESIDENT
PRESIDENT 5000
5000
ALLEN
ALLEN SALESMAN
SALESMAN 1600
1600

2-21 Copyright  Oracle Corporation, 2003.Tous droits réservés.


Clause ORDER BY
•• Tri
Tri des
des lignes
lignes avec
avec la
la clause
clause ORDER
ORDER BY BY
–– ASC
ASC :: ordre
ordre croissant
croissant (par
(par défaut)
défaut)
–– DESC
DESC :: ordre
ordre décroissant
décroissant
•• La
La clause
clause ORDER
ORDER BYBY se
se place
place àà la
la fin
fin de
de l’ordre
l’ordre
SELECT
SELECT
SQL> SELECT ename, job, deptno, hiredate
2 FROM emp
3 ORDER BY hiredate;

ENAME JOB DEPTNO HIREDATE


---------- --------- --------- ---------
SMITH CLERK 20 17-DEC-80
ALLEN SALESMAN 30 20-FEB-81
...
14 rows selected.
2-22 Copyright  Oracle Corporation, 2003.Tous droits réservés.
Tri par Ordre Décroissant
SQL> SELECT ename, job, deptno, hiredate
2 FROM emp
3 ORDER BY hiredate DESC;

ENAME JOB DEPTNO HIREDATE


---------- --------- --------- ---------
ADAMS CLERK 20 12-JAN-83
SCOTT ANALYST 20 09-DEC-82
MILLER CLERK 10 23-JAN-82
JAMES CLERK 30 03-DEC-81
FORD ANALYST 20 03-DEC-81
KING PRESIDENT 10 17-NOV-81
MARTIN SALESMAN 30 28-SEP-81
...
14 rows selected.

2-23 Copyright  Oracle Corporation, 2003.Tous droits réservés.


Tri sur l’Alias de Colonne
SQL> SELECT empno, ename, sal*12 annsal
2 FROM emp
3 ORDER BY annsal;

EMPNO ENAME ANNSAL


--------- ---------- ---------
7369 SMITH 9600
7900 JAMES 11400
7876 ADAMS 13200
7654 MARTIN 15000
7521 WARD 15000
7934 MILLER 15600
7844 TURNER 18000
...
14 rows selected.

2-24 Copyright  Oracle Corporation, 2003.Tous droits réservés.


Tri sur Plusieurs Colonnes
•• L’ordre
L’ordre des
des éléments
éléments de
de la
la liste
liste ORDER
ORDER BY
BY
donne
donne l’ordre
l’ordre du
du tri.
tri.
SQL> SELECT ename, deptno, sal
2 FROM emp
3 ORDER BY deptno, sal DESC;

ENAME DEPTNO SAL


---------- --------- ---------
KING 10 5000
CLARK 10 2450
MILLER 10 1300
FORD 20 3000
...
14 rows selected.

•• Vous
Vous pouvez
pouvez effectuer
effectuer un un tri tri sur
sur une une colonne
colonne
ne
ne figurant
figurant pas
pas dans
dans la
la liste
liste SELECT.
SELECT.
2-25 Copyright  Oracle Corporation, 2003.Tous droits réservés.
Résumé

SELECT [DISTINCT] {*, column [alias], ...}


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

2-26 Copyright  Oracle Corporation, 2003.Tous droits réservés.


Présentation des Exercices
• •Interrogation
Interrogationde
dedonnées
donnéesetetmodification
modificationde
del’ordre
l’ordredes
deslignes
lignesaffichées
affichées
• •Restriction
Restrictiondes
deslignes
lignesavec
aveclalaclause
clauseWHERE
WHERE
• •Utilisation
Utilisationdes
desguillemets
guillemetsdans
dansles
lesalias
aliasde
decolonne
colonne

2-27 Copyright  Oracle Corporation, 2003.Tous droits réservés.


Présentation du Cours

<Saisissez
<Saisissez ici
ici des
des informations
informations sur
sur la
la
présentation
présentation du
du cours>
cours>

2-28 Copyright  Oracle Corporation, 2003.Tous droits réservés.

Vous aimerez peut-être aussi