Vous êtes sur la page 1sur 38

1

L'Ordre SELECT
Elémentaire

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


Objectifs

A
A lala fin
fin de
de ce
ce chapitre,
chapitre, vous
vous saurez
saurez ::
•• Enumérer
Enumérer toutes
toutes les
les possibilités
possibilités de
de
l’ordre
l’ordre SQL
SQL SELECT
SELECT
•• Exécuter
Exécuter un un ordre
ordre SELECT
SELECT élémentaire
élémentaire
•• Faire
Faire la
la différence
différence entre
entre les
les ordres
ordres SQL
SQL
et
et les
les commandes
commandes SQL*Plus
SQL*Plus

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


Les Possibilités de l'Ordre SQL
SELECT
Sélection Projection

Table 1 Table 1
Jointure

Table 1 Table 2
1-3 Copyright  Oracle Corporation, 2003. Tous droits réservés.
Ordre SELECT Elémentaire

SELECT
SELECT [DISTINCT]
[DISTINCT] {*,
{*, column
column [alias],...}
[alias],...}
FROM
FROM table;
table;

•• SELECT
SELECT indique
indique quelles
quelles colonnes
colonnes
rapporter
rapporter
•• FROM
FROM indique
indique dans
dans quelle
quelle table
table
rechercher
rechercher

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


Ecriture des Ordres SQL
•• Les
Les ordres
ordres SQL
SQL peuvent
peuvent être
être écrits
écrits
indifféremment
indifféremment en en majuscules
majuscules et/ou
et/ou
minuscules.
minuscules.
•• Les
Les ordres
ordres SQL
SQL peuvent
peuvent être
être écrits
écrits sur
sur
plusieurs
plusieurs lignes.
lignes.
•• Les
Les mots-clés
mots-clés nene doivent
doivent pas
pas être
être abrégés
abrégés ni
ni
scindés
scindés sur
sur deux
deux lignes
lignes différentes.
différentes.
•• Les
Les clauses
clauses sont
sont généralement
généralement placées
placées sur
sur
des
des lignes
lignes distinctes.
distinctes.
•• Les
Les tabulations
tabulations etet indentations
indentations permettent
permettent
une
une meilleure
meilleure lisibilité.
lisibilité.
1-5 Copyright  Oracle Corporation, 2003. Tous droits réservés.
Sélection de Toutes
les Colonnes
SQL> SELECT *
2 FROM dept;

DEPTNO DNAME LOC


--------- -------------- -------------
10 ACCOUNTING NEW YORK
20 RESEARCH DALLAS
30 SALES CHICAGO
40 OPERATIONS BOSTON

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


Sélection d’Une ou Plusieurs
Colonnes Spécifiques
SQL> SELECT deptno, loc
2 FROM dept;

DEPTNO LOC
--------- -------------
10 NEW YORK
20 DALLAS
30 CHICAGO
40 BOSTON

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


Valeurs par Défaut des
En-têtes de Colonne

•• Justification
Justification parpar défaut
défaut
–– A
A gauche
gauche :: date
date et
et données
données
alphanumériques
alphanumériques
–– A
A droite
droite :: données
données numériques
numériques
•• Affichage
Affichage par
par défaut
défaut :: en
en majuscules
majuscules

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


Expressions Arithmétiques
Possibilité
Possibilité de
de créer
créer des
des expressions
expressions avec
avec
des
des données
données de de type
type NUMBER
NUMBER etet DATE
DATE au
au
moyen
moyen d’opérateurs
d’opérateurs arithmétiques
arithmétiques

Opérateur Description

+ Addition

- Soustraction

* Multiplication

/ Division

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


Utilisation des Opérateurs
Arithmétiques
SQL> SELECT ename, sal, sal+300
2 FROM emp;

ENAME SAL SAL+300


---------- --------- ---------
KING 5000 5300
BLAKE 2850 3150
CLARK 2450 2750
JONES 2975 3275
MARTIN 1250 1550
ALLEN 1600 1900
...
14 rows selected.

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


Priorité des Opérateurs
_
// ++ _
**
•• La
La multiplication
multiplication et
et la
la division
division ont
ont
priorité
priorité sur
sur l’addition
l’addition etet la
la soustraction.
soustraction.
•• A
A niveau
niveau de
de priorité
priorité identique,
identique, les
les
opérateurs
opérateurs sont
sont évalués
évalués de de gauche
gauche àà
droite.
droite.
•• Les
Les parenthèses
parenthèses forcent
forcent lala priorité
priorité
d’évaluation
d’évaluation etet permettent
permettent de de clarifier
clarifier
les
les ordres.
ordres.
1-11 Copyright  Oracle Corporation, 2003. Tous droits réservés.
Priorité des Opérateurs

SQL> SELECT ename, sal, 12*sal+100


2 FROM emp;

ENAME SAL 12*SAL+100


---------- --------- ----------
KING 5000 60100
BLAKE 2850 34300
CLARK 2450 29500
JONES 2975 35800
MARTIN 1250 15100
ALLEN 1600 19300
...
14 rows selected.

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


Utilisation des Parenthèses

SQL> SELECT ename, sal, 12*(sal+100)


2 FROM emp;

ENAME SAL 12*(SAL+100)


---------- --------- -----------
KING 5000 61200
BLAKE 2850 35400
CLARK 2450 30600
JONES 2975 36900
MARTIN 1250 16200
...
14 rows selected.

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


La Valeur NULL
•• NULL
NULL représente
représente une
une valeur
valeur non
non
disponible,
disponible, non
non affectée,
affectée, inconnue
inconnue ou
ou
inapplicable.
inapplicable.
•• La
La valeur
valeur NULL
NULL est
est différente
différente du
du zéro
zéro ou
ou
de
de l’espace.
l’espace.
SQL> SELECT ename, job, comm
2 FROM emp;

ENAME JOB COMM


---------- --------- ---------
KING PRESIDENT
BLAKE MANAGER
...
TURNER SALESMAN 0
...
14 rows selected.
1-14 Copyright  Oracle Corporation, 2003. Tous droits réservés.
Valeurs NULL dans les
Expressions Arithmétiques
Les
Les expressions
expressions arithmétiques
arithmétiques
comportant
comportant une
une valeur
valeur NULL
NULL sont
sont
évaluées
évaluées àà NULL
NULL
SQL> select ename NAME, 12*sal+comm
2 from emp
3 WHERE ename='KING';

NAME 12*SAL+COMM
---------- -----------
KING

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


L’Alias de Colonne
•• Renomme
Renomme un un en-tête
en-tête de
de colonne
colonne
•• Est
Est utile
utile dans
dans les
les calculs
calculs
•• Suit
Suit immédiatement
immédiatement le le nom
nom dede la
la
colonne
colonne ;; lele mot-clé
mot-clé AS
AS placé
placé entre
entre le
le
nom
nom etet l’alias
l’alias est
est optionnel
optionnel
•• Doit
Doit obligatoirement
obligatoirement êtreêtre inclus
inclus entre
entre
guillemets
guillemets s’il
s’il contient
contient des
des espaces,
espaces,
des
des caractères
caractères spéciaux
spéciaux ou
ou si
si les
les
majuscules/minuscules
majuscules/minuscules doiventdoivent être
être
différenciées
différenciées

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


Utilisation des Alias de Colonnes

SQL> SELECT ename AS name, sal salary


2 FROM emp;

NAME SALARY
------------- ---------
...

SQL> SELECT ename "Name",


2 sal*12 "Annual Salary"
3 FROM emp;

Name Annual Salary


------------- -------------
...
1-17 Copyright  Oracle Corporation, 2003. Tous droits réservés.
L’Opérateur de Concaténation

•• Concatène
Concatène desdes colonnes
colonnes ouou chaînes
chaînes de
de
caractères
caractères avec
avec d’autres
d’autres colonnes
colonnes
•• Est
Est représenté
représenté par
par deux
deux barres
barres
verticales
verticales (||)
(||)
•• La
La colonne
colonne résultante
résultante est
est une
une
expression
expression caractère
caractère

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


Utilisation de l’Opérateur
de Concaténation
SQL> SELECT ename||job AS "Employees"
2 FROM emp;

Employees
-------------------
KINGPRESIDENT
BLAKEMANAGER
CLARKMANAGER
JONESMANAGER
MARTINSALESMAN
ALLENSALESMAN
...
14 rows selected.

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


Littéral

•• Un
Un littéral
littéral est
est un
un caractère,
caractère, une
une
expression,
expression, ou ou unun nombre
nombre inclus
inclus dans
dans
la
la liste
liste SELECT.
SELECT.
•• Les
Les valeurs
valeurs littérales
littérales de
de type
type date
date et
et
caractère
caractère doivent
doivent être
être placées
placées entre
entre
simples
simples quotes.
quotes.
•• Chaque
Chaque littéral
littéral apparaît
apparaît sur
sur chaque
chaque
ligne
ligne ramenée.
ramenée.

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


Utilisation des Chaînes
de Caractères Littérales
SQL> SELECT ename ||' '||'is a'||' '||job
2 AS "Employee Details"
3 FROM emp;

Employee
Employee Details
Details
-------------------------
-------------------------
KING
KING is
is aa PRESIDENT
PRESIDENT
BLAKE
BLAKE is
is aa MANAGER
MANAGER
CLARK
CLARK is
is aa MANAGER
MANAGER
JONES
JONES is
is aa MANAGER
MANAGER
MARTIN
MARTIN is
is aa SALESMAN
SALESMAN
...
...
14
14 rows
rows selected.
selected.

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


Doublons
Par
Par défaut,
défaut, le
le résultat
résultat d’une
d’une requête
requête
affiche
affiche toutes
toutes les
les lignes,
lignes, yy compris
compris les
les
doublons.
doublons.
SQL>
SQL> SELECT
SELECT deptno
deptno
22 FROM
FROM emp;
emp;

DEPTNO
---------
10
30
10
20
...
14 rows selected.

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


Elimination des Doublons
Pour éliminer les doublons il faut ajouter
le mot-clé DISTINCT à la clause SELECT.

SQL> SELECT DISTINCT deptno


2 FROM emp;

DEPTNO
---------
10
20
30

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


Interaction entre SQL et SQL*Plus
Ordres SQL
Serveur
SQL*Plus
iSQL*Plus
Résultats de la requête

Buffer

Scripts
SQL
1-24 Copyright  Oracle Corporation, 2003. Tous droits réservés.
1-25 Copyright  Oracle Corporation, 2003. Tous droits réservés.
1-26 Copyright  Oracle Corporation, 2003. Tous droits réservés.
1-27 Copyright  Oracle Corporation, 2003. Tous droits réservés.
1-28 Copyright  Oracle Corporation, 2003. Tous droits réservés.
Comparatif entre Ordres SQL et
Commandes SQL*Plus
SQL SQL*Plus
• Un langage • Un environnement
• Standard ANSI • Produit propriétaire Oracle
• Abréviation des mots- • Abréviation des mots-clés
clés impossible possible
• Les ordres agissent • Les commandes ne
sur le contenu et la permettent d'agir ni sur le
définition des tables contenu, ni sur la
de la base de données définition des tables.

Ordres Buffer Commandes Buffer


SQL SQL SQL*Plus SQL*Plus

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


Présentation de SQL*Plus
•• Connexion
Connexion àà SQL*Plus.
SQL*Plus.
•• Affichage
Affichage de
de la
la structure
structure d’une
d’une table.
table.
•• Edition
Edition d’un
d’un ordre
ordre SQL.
SQL.
•• Exécution
Exécution de
de SQL
SQL àà partir
partir de
de SQL*Plus.
SQL*Plus.
•• Enregistrement
Enregistrement ou ou ajout ajout d’ordres
d’ordres SQL SQL
dans
dans un
un fichier.
fichier.
•• Exécution
Exécution d’ordres
d’ordres contenus contenus dans dans un
un
fichier.
fichier.
•• Chargement
Chargement dans dans le le buffer
buffer de de l'ordre
l'ordre
1-30
contenu dans
contenuCopyright
dans un
un fichier.
fichier.
 Oracle Corporation, 2003. Tous droits réservés.
Connexion à SQL*Plus
• Depuis l’environnement Windows :

• Depuis une ligne de commande :


sqlplus [username[/password
[@database]]]
1-31 Copyright  Oracle Corporation, 2003. Tous droits réservés.
Affichage de la Structure
d’une Table
Utilisez
Utilisez la
la commande
commande SQL*Plus
SQL*Plus
DESCRIBE
DESCRIBE pourpour afficher
afficher la
la structure
structure d’une
d’une
table.
table.
DESC[RIBE]
DESC[RIBE] tablename
tablename

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


Affichage de la Structure
d’une Table
SQL>
SQL> DESCRIBE
DESCRIBE dept
dept

Name
Name Null?
Null? Type
Type
-----------------
----------------- --------
-------- ----
----
DEPTNO
DEPTNO NOT
NOT NULL
NULL NUMBER(2)
NUMBER(2)
DNAME
DNAME VARCHAR2(14)
VARCHAR2(14)
LOC
LOC VARCHAR2(13)
VARCHAR2(13)

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


Commandes d’Edition SQL*Plus

•• A[PPEND]
A[PPEND] text
text
•• C[HANGE]
C[HANGE] // old
old // new
new
•• C[HANGE]
C[HANGE] // text
text //
•• CL[EAR]
CL[EAR] BUFF[ER]
BUFF[ER]
•• DEL
DEL
•• DEL
DEL n
n
•• DEL
DEL m
mnn

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


Commandes d’Edition SQL*Plus
•• I[NPUT]
I[NPUT]
•• I[NPUT]
I[NPUT] text
text
•• L[IST]
L[IST]
•• L[IST]
L[IST] n
n
•• L[IST]
L[IST] m
mnn
•• R[UN]
R[UN]
•• n
n
•• n
n text
text
•• 00 text
text
1-35 Copyright  Oracle Corporation, 2003. Tous droits réservés.
Commandes de Fichiers
SQL*Plus
•• SAVE
SAVE filename
filename
•• GET
GET filename
filename
•• START
START filename
filename
•• @
@ filename
filename
•• EDIT
EDIT filename
filename
•• SPOOL
SPOOL filename
filename
•• EXIT
EXIT

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


Résumé

SELECT
SELECT [DISTINCT]
[DISTINCT] {*,column[alias],...}
{*,column[alias],...}
FROM
FROM table;
table;

L’environnement
L’environnement SQL*Plus
SQL*Plus permet
permet ::
•• D’exécuter
D’exécuter des
des ordres
ordres SQL
SQL
•• D’éditer
D’éditer des
des ordres
ordres SQL
SQL

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


Présentation des Exercices

•• Afficher
Afficher les
les données
données dede différentes
différentes tables.
tables.
•• Afficher
Afficher la
la structure
structure des
des tables.
tables.
•• Calculs
Calculs arithmétiques
arithmétiques etet spécifications
spécifications
des
des noms
noms de de colonnes.
colonnes.
•• Utilisation
Utilisation de
de l’éditeur
l’éditeur SQL*Plus.
SQL*Plus.

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

Vous aimerez peut-être aussi