Vous êtes sur la page 1sur 33

Chapitre N1

L'Ordre SELECT lmentaire

Objectifs
A la fin de ce chapitre, vous saurez : numrer toutes les possibilits de lordre SQL SELECT Excuter un ordre SELECT lmentaire Faire la diffrence entre les ordres SQL et les commandes SQL*Plus

1-2

Les Possibilits de l'Ordre SQL SELECT


Slection Projection

Table 1

Table 1

Jointure

Table 1
1-3

Table 2

Ordre SELECT lmentaire


SELECT FROM liste_des_champs__afficher table;

Table
1-4

Ordre SELECT lmentaire


La syntaxe
SELECT FROM *|{[DISTINCT]column | expression [alias],...} table;

SELECT : indique quelles colonnes rapporter FROM : indique dans quelle table rechercher
DISTINCT

: suppression des doublons

* : slection de toutes les colonnes Alias: attribue des en-ttes diffrents aux colonnes slctionnes

1-5

criture des Ordres SQL


Les ordres SQL peuvent tre crits indiffremment en majuscules et/ou minuscules. Les ordres SQL peuvent tre crits sur *** lignes. Les mots-cls ne doivent pas tre abrgs ni scinds sur *** lignes diffrentes. Les clauses sont gnralement places sur des lignes distinctes. Les tabulations et indentations permettent une meilleure lisibilit.

1-6

Slection de Toutes les Colonnes


SQL> SELECT * 2 FROM dept; DEPTNO --------10 20 30 40 DNAME -------------ACCOUNTING RESEARCH SALES OPERATIONS LOC ------------NEW YORK DALLAS CHICAGO BOSTON

1-7

Slection d1 ou Plusieurs Colonnes Spcifiques

SQL> SELECT deptno, loc 2 FROM dept; DEPTNO --------10 20 30 40 LOC ------------NEW YORK DALLAS CHICAGO BOSTON

1-8

Valeurs par Dfaut des En-ttes de Colonne


Justification par dfaut
A gauche : date et donnes alphanumriques A droite : donnes numriques

Affichage par dfaut : en majuscules


Exemple:

DEPTNO --------10 20 30 40
1-9

LOC ------------NEW YORK DALLAS CHICAGO BOSTON

Expressions Arithmtiques
Possibilit de crer des expressions avec des donnes de type NUMBER et DATE au moyen doprateurs arithmtiques
Oprateur Description + Addition Soustraction

*
/

Multiplication
Division

1-10

Utilisation des Oprateurs Arithmtiques


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-11

Priorit des Oprateurs

La multiplication et la division ont priorit sur laddition et la soustraction.


A niveau de priorit identique, les oprateurs sont valus de gauche droite. Les parenthses forcent la priorit dvaluation et permettent de clarifier les ordres.
1-12

Priorit des Oprateurs


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-13

Utilisation des Parenthses


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-14

La Valeur NULL
NULL reprsente une valeur non disponible, non affecte, inconnue ou inapplicable. La valeur NULL est diffrente du zro ou de lespace.
SQL> SELECT 2 FROM ename, job, comm emp;

ENAME JOB COMM ---------- --------- --------KING PRESIDENT BLAKE MANAGER ... TURNER SALESMAN 0 ... 14 rows selected.
1-15

NULL dans les Expressions Arithmtiques


Les expressions arithmtiques comportant une valeur NULL sont values NULL
SQL> select ename NAME, 12*sal+comm 2 from emp 3 WHERE ename='KING';

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

1-16

LAlias de Colonne
Renomme un en-tte de colonne

Utile dans les calculs


Suit immdiatement le nom de la colonne ; le mot-cl AS plac entre le nom et lalias est optionnel Doit obligatoirement tre inclus entre guillemets sil contient des espaces, des caractres spciaux ou si les majuscules/minuscules doivent tre diffrencies
1-17

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-18

LOprateur de Concatnation
Concatne des colonnes ou chanes de caractres avec dautres colonnes Est reprsent par deux barres verticales (||) La colonne rsultante est une expression caractre

1-19

Utilisation de lOprateur de Concatnation

SQL> SELECT 2 FROM

ename||job AS "Employees" emp;

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

Littral
Un littral est un caractre, une expression, ou un nombre inclus dans la liste SELECT.
Les valeurs littrales de type date et caractre doivent tre places entre simples quotes. Chaque littral apparat sur chaque ligne ramene.

1-21

Utilisation des Chanes de Caractres Littrales


SQL> SELECT ename ||' '||'is a'||' '||job 2 AS "Employee Details" 3 FROM emp; Employee Details ------------------------KING is a PRESIDENT BLAKE is a MANAGER CLARK is a MANAGER JONES is a MANAGER MARTIN is a SALESMAN ... 14 rows selected.

1-22

Doublons
Par dfaut, le rsultat dune requte affiche toutes les lignes, y compris les doublons.
SQL> SELECT deptno 2 FROM emp; DEPTNO --------10 30 10 20 ... 14 rows selected.

1-23

limination 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-24

Interaction entre SQL et SQL*Plus


Ordres SQL

Serveur

SQL*Plus
Rsultats de la requte

Buffer

Scripts SQL
1-25

Comparatif entre Ordres SQL et Commandes SQL*Plus


SQL Un langage Standard ANSI Abrviation des motscls impossible Les ordres agissent sur le contenu et la dfinition des tables de la base de donnes
SQL*Plus Un environnement Produit propritaire Oracle Abrviation des mots-cls possible Les commandes ne permettent d'agir ni sur le contenu, ni sur la dfinition des tables.

Ordres SQL
1-26

Buffer SQL

Commandes SQL*Plus

Buffer SQL*Plus

Prsentation de SQL*Plus
Connexion SQL*Plus.

Affichage de la structure dune table.


dition dun ordre SQL. Excution de SQL partir de SQL*Plus. Enregistrement ou ajout dordres SQL dans un fichier. Excution dordres contenus dans un fichier. Chargement dans le buffer de l'ordre contenu dans un fichier.
1-27

Connexion SQL*Plus
Depuis lenvironnement Windows :

Depuis une ligne de commande : sqlplus [username[/password [@database]]]


1-28

Affichage de la Structure dune Table


Utilisez la commande SQL*Plus DESCRIBE pour afficher la structure dune table.
DESC[RIBE] tablename

1-29

Affichage de la Structure dune Table


SQL> DESCRIBE dept

Name Null? ----------------- -------DEPTNO NOT NULL DNAME LOC

Type ---NUMBER(2) VARCHAR2(14) VARCHAR2(13)

1-30

Commandes de Fichiers SQL*Plus


SAVE filename GET filename START filename @ filename

EDIT filename
SPOOL filename EXIT
1-31

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

Lenvironnement SQL*Plus permet : Dexcuter des ordres SQL Dditer des ordres SQL

1-32

Prsentation des Exercices


Afficher les donnes de diffrentes tables. Afficher la structure des tables. Calculs arithmtiques et spcifications des noms de colonnes. Utilisation de lditeur SQL*Plus.

1-33