Vous êtes sur la page 1sur 8

Objectifs

1 A la fin de ce chapitre, vous saurez :


• Enumérer toutes les possibilités de
L'Ordre SELECT l’ordre SQL SELECT
Elémentaire • Exécuter un ordre SELECT élémentaire
• Faire la différence entre les ordres SQL
et les commandes SQL*Plus

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

Les Possibilités de l'Ordre SQL Ordre SELECT Elémentaire


SELECT
Sélection Projection SELECT [DISTINCT] {*, column [alias],...}
FROM table;

• SELECT indique quelles colonnes


Table 1 Table 1 rapporter
Jointure
• FROM indique dans quelle table
rechercher

Table 1 Table 2
1-3 Copyright  Oracle Corporation, 1998. Tous droits réservés. 1-4 Copyright  Oracle Corporation, 1998. Tous droits réservés.

<Course name> <Lesson number>-1


Ecriture des Ordres SQL
Sélection de Toutes
• Les ordres SQL peuvent être écrits
indifféremment en majuscules et/ou
les Colonnes
minuscules. SQL> SELECT *
2 FROM dept;
• Les ordres SQL peuvent être écrits sur
plusieurs lignes. DEPTNO DNAME LOC
--------- -------------- -------------
• Les mots-clés ne doivent pas être abrégés ni 10 ACCOUNTING NEW YORK
scindés sur deux lignes différentes. 20 RESEARCH DALLAS
30 SALES CHICAGO
• Les clauses sont généralement placées sur 40 OPERATIONS BOSTON

des lignes distinctes.


• Les tabulations et indentations permettent
une meilleure lisibilité.
1-5 Copyright  Oracle Corporation, 1998. Tous droits réservés. 1-6 Copyright  Oracle Corporation, 1998. Tous droits réservés.

Sélection d’Une ou Plusieurs Valeurs par Défaut des


Colonnes Spécifiques En-têtes de Colonne
SQL> SELECT deptno, loc
2 FROM dept; • Justification par défaut
DEPTNO LOC – A gauche : date et données
--------- ------------- alphanumériques
10 NEW YORK
20 DALLAS – A droite : données numériques
30 CHICAGO
40 BOSTON • Affichage par défaut : en majuscules

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

<Course name> <Lesson number>-2


Expressions Arithmétiques Utilisation des Opérateurs
Possibilité de créer des expressions avec
Arithmétiques
des données de type NUMBER et DATE au SQL> SELECT ename, sal, sal+300
moyen d’opérateurs arithmétiques 2 FROM emp;

ENAME SAL SAL+300


Opérateur Description ---------- --------- ---------
KING 5000 5300
+ Addition BLAKE 2850 3150
CLARK 2450 2750
- Soustraction
JONES 2975 3275
* Multiplication MARTIN 1250 1550
ALLEN 1600 1900
/ Division ...
14 rows selected.

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

Priorité des Opérateurs Priorité des Opérateurs


_
* / + SQL> SELECT ename, sal, 12*sal+100
2 FROM emp;

• La multiplication et la division ont ENAME SAL 12*SAL+100


priorité sur l’addition et la soustraction. ---------- --------- ----------
KING 5000 60100
• A niveau de priorité identique, les BLAKE 2850 34300
CLARK 2450 29500
opérateurs sont évalués de gauche à JONES 2975 35800
droite. MARTIN 1250 15100
ALLEN 1600 19300
• Les parenthèses forcent la priorité ...
14 rows selected.
d’évaluation et permettent de clarifier
les ordres.
1-11 Copyright  Oracle Corporation, 1998. Tous droits réservés. 1-12 Copyright  Oracle Corporation, 1998. Tous droits réservés.

<Course name> <Lesson number>-3


La Valeur NULL
Utilisation des Parenthèses • NULL représente une valeur non
disponible, non affectée, inconnue ou
SQL> SELECT ename, sal, 12*(sal+100) inapplicable.
2 FROM emp;
• La valeur NULL est différente du zéro ou
ENAME SAL 12*(SAL+100)
de l’espace.
---------- --------- ----------- SQL> SELECT ename, job, comm
KING 5000 61200 2 FROM emp;
BLAKE 2850 35400
CLARK 2450 30600
ENAME JOB COMM
JONES 2975 36900
---------- --------- ---------
MARTIN 1250 16200
KING PRESIDENT
...
BLAKE MANAGER
14 rows selected.
...
TURNER SALESMAN 0
...
14 rows selected.
1-13 Copyright  Oracle Corporation, 1998. Tous droits réservés. 1-14 Copyright  Oracle Corporation, 1998. Tous droits réservés.

Valeurs NULL dans les L’Alias de Colonne


Expressions Arithmétiques • Renomme un en-tête de colonne
Les expressions arithmétiques
• Est utile dans les calculs
comportant une valeur NULL sont
évaluées à NULL • Suit immédiatement le nom de la
colonne ; le mot-clé AS placé entre le
SQL> select ename , 12*sal+comm
2 from emp nom et l’alias est optionnel
3 WHERE ename='KING';
• Doit obligatoirement être inclus entre
guillemets s’il contient des espaces,
ENAME 12*SAL+COMM des caractères spéciaux ou si les
---------- ----------- majuscules/minuscules doivent être
KING
différenciées

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

<Course name> <Lesson number>-4


Utilisation des Alias de Colonnes
L’Opérateur de Concaténation
SQL> SELECT ename AS name, sal salary
2 FROM emp;
• Concatène des colonnes ou chaînes de
NAME SALARY caractères avec d’autres colonnes
------------- ---------
...
• Est représenté par deux barres
verticales (||)
SQL> SELECT ename "Name", • La colonne résultante est une
2 sal*12 "Annual Salary"
3 FROM emp; expression caractère

Name Annual Salary


------------- -------------
...

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

Utilisation de l’Opérateur Littéral


de Concaténation
SQL> SELECT ename||job AS "Employees" • Un littéral est un caractère, une
2 FROM emp; expression, ou un nombre inclus dans
la liste SELECT.
Employees
------------------- • Les valeurs littérales de type date et
KINGPRESIDENT caractère doivent être placées entre
BLAKEMANAGER
CLARKMANAGER simples quotes.
JONESMANAGER
MARTINSALESMAN • Chaque littéral apparaît sur chaque
ALLENSALESMAN ligne ramenée.
...
14 rows selected.

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

<Course name> <Lesson number>-5


Doublons
Utilisation des Chaînes Par défaut, le résultat d’une requête
de Caractères Littérales affiche toutes les lignes, y compris les
SQL> SELECT ename ||' '||'is a'||' '||job doublons.
2 AS "Employee Details"
3 FROM emp;
SQL> SELECT deptno
2 FROM emp;
Employee Details
-------------------------
DEPTNO
KING is a PRESIDENT
---------
BLAKE is a MANAGER
10
CLARK is a MANAGER
30
JONES is a MANAGER
10
MARTIN is a SALESMAN
20
...
...
14 rows selected.
14 rows selected.

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

Elimination des Doublons


Interaction entre SQL et SQL*Plus
Pour éliminer les doublons il faut ajouter
le mot-clé DISTINCT à la clause SELECT. Ordres SQL
Serveur
SQL> SELECT DISTINCT deptno SQL*Plus
2 FROM emp;
Résultats de la requête

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

Scripts
SQL
1-23 Copyright  Oracle Corporation, 1998. Tous droits réservés. 1-24 Copyright  Oracle Corporation, 1998. Tous droits réservés.

<Course name> <Lesson number>-6


Comparatif entre Ordres SQL et
Commandes SQL*Plus Présentation de SQL*Plus
SQL SQL*Plus
• Connexion à SQL*Plus.
• Un langage • Un environnement
• Standard ANSI • Produit propriétaire Oracle • Affichage de la structure d’une table.
• Abréviation des mots- • Abréviation des mots-clés • Edition d’un ordre SQL.
clés impossible possible
• Les ordres agissent • Les commandes ne • Exécution de SQL à partir de SQL*Plus.
sur le contenu et la permettent d'agir ni sur le
définition des tables contenu, ni sur la • Enregistrement ou ajout d’ordres SQL
de la base de données définition des tables. dans un fichier.
• Exécution d’ordres contenus dans un
Ordres Buffer Commandes Buffer fichier.
SQL SQL SQL*Plus SQL*Plus
• Chargement dans le buffer de l'ordre
1-25 1-26
contenu dans un fichier.
Copyright  Oracle Corporation, 1998. Tous droits réservés. Copyright  Oracle Corporation, 1998. Tous droits réservés.

Connexion à SQL*Plus Affichage de la Structure


• Depuis l’environnement Windows : d’une Table
Utilisez la commande SQL*Plus
DESCRIBE pour afficher la structure d’une
table.
DESC[RIBE] tablename

• Depuis une ligne de commande :


sqlplus [username[/password
[@database]]]
1-27 Copyright  Oracle Corporation, 1998. Tous droits réservés. 1-28 Copyright  Oracle Corporation, 1998. Tous droits réservés.

<Course name> <Lesson number>-7


Affichage de la Structure Résumé
d’une Table
SQL> DESCRIBE dept SELECT [DISTINCT] {*,column[alias],...}
FROM table;

Name Null? Type


----------------- -------- ----
DEPTNO NOT NULL NUMBER(2) L’environnement SQL*Plus permet :
DNAME VARCHAR2(14)
LOC VARCHAR2(13) • D’exécuter des ordres SQL
• D’éditer des ordres SQL

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

<Course name> <Lesson number>-8