Wednesday, February 1, 2012

Ecrire des instructions SQL SELECT �l�mentaires : SQL sous Oracle

Pour extraire des donn�es de la base, vous devez utiliser l'instruction SQL (Structured Query Language) SELECT. Il est parfois n�cessaire de restreindre le nombre de colonnes � afficher. Cet article d�crit toutes les instructions SQL n�cessaires � l'ex�cution de ces actions.



Diff�rentes fonctions des instructions SQL SELECT:



Une instruction SELECT permet d'extraire des informations d'une base de donn�es. L'utilisation d'une
instruction SELECT offre les possibilit�s suivantes :
� Projection : Cette fonction de SQL permet de choisir les colonnes d'une table qu'une interrogation
doit renvoyer. Vous pouvez choisir autant de colonnes que vous le souhaitez.
� S�lection : Cette fonction de SQL permet de choisir les lignes d'une table qu'une interrogation doit
renvoyer. Divers crit�res de restriction sont disponibles � cet effet.
� Jointure : Cette fonction de SQL permet de joindre des donn�es stock�es dans diff�rentes tables.
Les jointures seront d�crites en d�tail dans un chapitre ult�rieur.

Instruction SELECT �l�mentaire


Dans sa forme la plus simple, une instruction SELECT comprend :
� une clause SELECT pr�cisant les colonnes � afficher,
� une clause FROM sp�cifiant la table qui contient les colonnes r�pertori�es dans la clause SELECT.
Explication de la syntaxe :

SELECT                    d�signe une liste r�pertoriant une ou plusieurs colonnes
*                                 permet de s�lectionner toutes les colonnes
DISTINCT                permet de supprimer les doublons
column|expression    permet de s�lectionner la colonne d�sign�e ou l'expression
alias                           permet d'attribuer des en-t�tes diff�rents aux colonnes s�lectionn�es
FROM  table            permet de d�signer la table contenant les colonnes

Remarque : Tout au long de ce cours, nous utiliserons les termes mot-cl�, clause et instruction comme suit :
� Un mot-cl� renvoie � un �l�ment SQL individuel.
Par exemple, SELECT et FROM sont des mots-cl�s.
� Une clause est une partie d'une instruction SQL.
Par exemple, SELECT employee_id, last_name, ... est une clause.
� Une instruction est une combinaison d'au moins deux clauses.
Par exemple, SELECT * FROM employees est une instruction SQL.


S�lectionner toutes les colonnes de toutes les lignes :


Vous pouvez afficher toutes les colonnes de donn�es d'une table en pla�ant un ast�risque (*) � la suite du
mot-cl� SELECT. Dans l'exemple de la diapositive, la table des services (DEPARTMENTS) comporte
quatre colonnes : DEPARTMENT_ID, DEPARTMENT_NAME, MANAGER_ID et LOCATION_ID. Elle contient sept lignes, une pour chaque service.
Vous pouvez �galement afficher l'ensemble des colonnes de la table en les �num�rant toutes � la suite du
mot-cl� SELECT. Par exemple, l'instruction SQL suivante, de m�me que l'exemple de la diapositive,
affiche toutes les colonnes et toutes les lignes de la table DEPARTMENTS :

SELECT department_id, department_name, manager_id, location_id
FROM departments;


S�lectionner des colonnes sp�cifiques de toutes les lignes :

Vous pouvez utiliser l'instruction SELECT pour afficher des colonnes sp�cifiques de la table. Pour cela,
indiquez les noms de colonne s�par�s par des virgules. L'exemple ci-dessus permet d'afficher tous les
num�ros de service et d'emplacement de la table DEPARTMENTS.
Dans la clause SELECT, indiquez les colonnes dans l'ordre dans lequel vous souhaitez qu'elles
apparaissent. Par exemple, pour afficher, de gauche � droite, l'emplacement avant le num�ro de service,
utilisez l'instruction suivante :
SELECT location_id, department_id
FROM departments;




Expressions arithm�tiques:

Si n�cessaire, vous pouvez modifier l'affichage des donn�es, effectuer des calculs ou �tudier diff�rents
sc�narios de simulation � l'aide d'expressions arithm�tiques. Une expression arithm�tique peut contenir
des noms de colonne, des constantes num�riques et des op�rateurs arithm�tiques.
Op�rateurs arithm�tiques:

Les op�rateurs arithm�tiques disponibles dans SQL sont pr�sent�s dans la diapositive. Vous pouvez les
utiliser dans n'importe quelle clause d'une instruction SQL, except� FROM.


Utiliser des op�rateurs arithm�tiques:


L'exemple de l'image d�crit l'utilisation de l'op�rateur d'addition pour calculer une augmentation de
salaire de 300 $ applicable � tous les employ�s, avec affichage d'une nouvelle colonne SALARY+300.
La colonne SALARY+300 qui r�sulte de ce calcul n'est pas une nouvelle colonne de la table
EMPLOYEES ; elle n'est que l'affichage d'un r�sultat. Par d�faut, le nom d'une nouvelle colonne est issu
du calcul dont elle provient : dans ce cas pr�cis, salary+300.
Remarque : Le serveur Oracle9i ignore les espaces situ�s avant et apr�s l'op�rateur arithm�tique.

Alias de colonne:

Lors de l'affichage des r�sultats d'une interrogation, iSQL*Plus prend g�n�ralement le nom de la colonne
s�lectionn�e comme en-t�te de colonne. Cet en-t�te n'est pas toujours explicite et s'av�re donc parfois
difficile � comprendre. L'alias de colonne permet de modifier l'en-t�te.
Placez l'alias � la suite du nom de colonne dans la liste SELECT en utilisant le caract�re espace en tant
que s�parateur. Par d�faut, les alias sont en majuscules. Placez l'alias entre guillemets (" ") s'il contient des
espaces ou des caract�res sp�ciaux (tels que # ou $), ou si les majuscules/minuscules doivent �tre
respect�es.

Le premier exemple affiche le nom et le pourcentage de commission de tous les employ�s. Le mot-cl�
facultatif AS a �t� plac� avant l'alias de colonne. L'utilisation ou l'omission de ce mot-cl� ne modifie pas
le r�sultat de l'interrogation. Dans l'instruction SQL, les alias de colonne "name" et "comm" sont sp�cifi�s
en minuscules, alors que les en-t�tes de colonne apparaissent en majuscules dans le r�sultat de
l'interrogation. En effet, comme mentionn� sur une diapositive pr�c�dente, les en-t�tes de colonne
s'affichent par d�faut en majuscules.
Le second exemple affiche le nom et le salaire annuel de tous les employ�s. L'alias Annual Salary a
�t� plac� entre guillemets car il contient un espace. L'en-t�te de colonne affich� est identique � l'alias de
colonne.

Op�rateur de concat�nation:

L'op�rateur de concat�nation (||) permet de lier des colonnes � d'autres colonnes, � des expressions
arithm�tiques ou � des constantes afin de cr�er une expression alphanum�rique. Les colonnes situ�es de
part et d'autre de l'op�rateur se combinent pour former une colonne de r�sultats unique.

Dans cet exemple, LAST_NAME et JOB_ID sont concat�n�es et re�oivent l'alias Employees. Le nom
des employ�s et leur ID de poste sont combin�s pour ne former qu'une colonne � l'affichage.
Le mot-cl� AS plac� devant l'alias simplifie la lecture de la clause SELECT.

Doublons :

Par d�faut, iSQL*Plus affiche le r�sultat d'une interrogation sans �liminer les doublons. L'exemple
ci-dessus affiche la totalit� des num�ros de service de la table EMPLOYEES. Les num�ros de service
apparaissent plusieurs fois.
Pour �liminer les doublons dans le r�sultat d'une interrogation, ajoutez le mot-cl� DISTINCT dans la
clause SELECT, directement � la suite du mot-cl� SELECT. Dans l'exemple ci-dessus, la table
EMPLOYEES comporte 20 lignes, mais on n'y distingue que sept num�ros de service.
Vous pouvez sp�cifier plusieurs colonnes � la suite du mot-cl� DISTINCT. Ce mot-cl� agit sur toutes les
colonnes s�lectionn�es et le r�sultat correspond aux combinaisons distinctes de ces colonnes.

SELECT DISTINCT department_id, job_id
FROM employees;









No comments:

Post a Comment