01_fr

28
L'Ordre SELECT L'Ordre SELECT Elémentaire Elémentaire

Upload: hayat-errifi

Post on 17-Feb-2015

30 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 01_FR

L'Ordre SELECT L'Ordre SELECT ElémentaireElémentaire

L'Ordre SELECT L'Ordre SELECT ElémentaireElémentaire

Page 2: 01_FR

ObjectifsObjectifsObjectifsObjectifs

• A la fin de ce chapitre, vous A la fin de ce chapitre, vous saurez :saurez :– Enumérer toutes les possibilités de Enumérer toutes les possibilités de

l’ordre SQL SELECT l’ordre SQL SELECT – Exécuter un ordre SELECT Exécuter un ordre SELECT

élémentaireélémentaire– Faire la différence entre les ordres Faire la différence entre les ordres

SQL et les commandes SQL*PlusSQL et les commandes SQL*Plus

• A la fin de ce chapitre, vous A la fin de ce chapitre, vous saurez :saurez :– Enumérer toutes les possibilités de Enumérer toutes les possibilités de

l’ordre SQL SELECT l’ordre SQL SELECT – Exécuter un ordre SELECT Exécuter un ordre SELECT

élémentaireélémentaire– Faire la différence entre les ordres Faire la différence entre les ordres

SQL et les commandes SQL*PlusSQL et les commandes SQL*Plus

Page 3: 01_FR

Les Possibilités de l'Ordre Les Possibilités de l'Ordre SQL SELECTSQL SELECTLes Possibilités de l'Ordre Les Possibilités de l'Ordre SQL SELECTSQL SELECT

SélectionSélection ProjectionProjection

Table 1Table 1 Table 2Table 2

Table 1Table 1 Table 1Table 1

JointureJointure

Page 4: 01_FR

Ordre SELECT ElémentaireOrdre SELECT ElémentaireOrdre SELECT ElémentaireOrdre SELECT Elémentaire

SELECT col1,col2,…FROM table;

SELECT col1,col2,…FROM table;

– SELECT indique SELECT indique quellesquelles colonnes colonnes rapporterrapporter

– FROM indique dans FROM indique dans quellequelle table table rechercherrechercher

– SELECT indique SELECT indique quellesquelles colonnes colonnes rapporterrapporter

– FROM indique dans FROM indique dans quellequelle table table rechercherrechercher

Page 5: 01_FR

Ecriture des Ordres SQLEcriture des Ordres SQLEcriture des Ordres SQLEcriture des Ordres SQL– Les ordres SQL peuvent être écrits Les ordres SQL peuvent être écrits

indifféremment en majuscules et/ou indifféremment en majuscules et/ou minuscules. minuscules.

– Les ordres SQL peuvent être écrits sur Les ordres SQL peuvent être écrits sur plusieurs lignes. plusieurs lignes.

– Les mots-clés ne doivent pas être Les mots-clés ne doivent pas être abrégés ni scindés sur deux lignes abrégés ni scindés sur deux lignes différentes.différentes.

– Les clauses sont généralement placées Les clauses sont généralement placées sur des lignes distinctes.sur des lignes distinctes.

– Les tabulations et indentations Les tabulations et indentations permettent une meilleure lisibilité.permettent une meilleure lisibilité.

– Les ordres SQL peuvent être écrits Les ordres SQL peuvent être écrits indifféremment en majuscules et/ou indifféremment en majuscules et/ou minuscules. minuscules.

– Les ordres SQL peuvent être écrits sur Les ordres SQL peuvent être écrits sur plusieurs lignes. plusieurs lignes.

– Les mots-clés ne doivent pas être Les mots-clés ne doivent pas être abrégés ni scindés sur deux lignes abrégés ni scindés sur deux lignes différentes.différentes.

– Les clauses sont généralement placées Les clauses sont généralement placées sur des lignes distinctes.sur des lignes distinctes.

– Les tabulations et indentations Les tabulations et indentations permettent une meilleure lisibilité.permettent une meilleure lisibilité.

Page 6: 01_FR

Sélection de Toutes Sélection de Toutes les Colonnesles ColonnesSélection de Toutes Sélection de Toutes les Colonnesles Colonnes

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

SQL> SELECT * 2 FROM dept;

Page 7: 01_FR

Sélection d’Une ou Plusieurs Sélection d’Une ou Plusieurs Colonnes SpécifiquesColonnes SpécifiquesSélection d’Une ou Plusieurs Sélection d’Une ou Plusieurs Colonnes SpécifiquesColonnes Spécifiques

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

SQL> SELECT deptno, loc 2 FROM dept;

Page 8: 01_FR

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

– Justification par défautJustification par défaut•A gauche : date et données A gauche : date et données

alphanumériquesalphanumériques

•A droite : données numériquesA droite : données numériques

– Affichage par défaut : en Affichage par défaut : en majusculesmajuscules

– Justification par défautJustification par défaut•A gauche : date et données A gauche : date et données

alphanumériquesalphanumériques

•A droite : données numériquesA droite : données numériques

– Affichage par défaut : en Affichage par défaut : en majusculesmajuscules

Page 9: 01_FR

Expressions Expressions ArithmétiquesArithmétiquesExpressions Expressions ArithmétiquesArithmétiques• Possibilité de créer des expressions Possibilité de créer des expressions

avec des données de type NUMBER avec des données de type NUMBER et DATE au moyen d’opérateurs et DATE au moyen d’opérateurs arithmétiquesarithmétiques

• Possibilité de créer des expressions Possibilité de créer des expressions avec des données de type NUMBER avec des données de type NUMBER et DATE au moyen d’opérateurs et DATE au moyen d’opérateurs arithmétiquesarithmétiques

Opérateur

+

-

*

/

Description

Addition

Soustraction

Multiplication

Division

Page 10: 01_FR

Utilisation des Utilisation des Opérateurs Opérateurs ArithmétiquesArithmétiques

Utilisation des Utilisation des Opérateurs Opérateurs ArithmétiquesArithmétiques

SQL> SELECT ename, sal, sal+300 2 FROM emp;

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

Page 11: 01_FR

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

– La multiplication et la division ont La multiplication et la division ont priorité sur l’addition et la priorité sur l’addition et la soustraction.soustraction.

– A niveau de priorité identique, les A niveau de priorité identique, les opérateurs sont évalués de gauche opérateurs sont évalués de gauche à droite.à droite.

– Les parenthèses forcent la priorité Les parenthèses forcent la priorité d’évaluation et permettent de d’évaluation et permettent de clarifier les ordres.clarifier les ordres.

– La multiplication et la division ont La multiplication et la division ont priorité sur l’addition et la priorité sur l’addition et la soustraction.soustraction.

– A niveau de priorité identique, les A niveau de priorité identique, les opérateurs sont évalués de gauche opérateurs sont évalués de gauche à droite.à droite.

– Les parenthèses forcent la priorité Les parenthèses forcent la priorité d’évaluation et permettent de d’évaluation et permettent de clarifier les ordres.clarifier les ordres.

**** //// ++++ ____

Page 12: 01_FR

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

Page 13: 01_FR

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

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

ENAME SAL 12*SAL+100---------- --------- ----------KING 5000 60100BLAKE 2850 34300CLARK 2450 29500JONES 2975 35800MARTIN 1250 15100ALLEN 1600 19300...14 rows selected.

Page 14: 01_FR

Utilisation des ParenthèsesUtilisation des ParenthèsesUtilisation des ParenthèsesUtilisation des Parenthèses

SQL> SELECT ename, sal, 12*(sal+100) 2 FROM emp;

ENAME SAL 12*(SAL+100)---------- --------- -----------KING 5000 61200BLAKE 2850 35400CLARK 2450 30600JONES 2975 36900MARTIN 1250 16200...14 rows selected.

Page 15: 01_FR

La Valeur NULLLa Valeur NULLLa Valeur NULLLa Valeur NULL– NULL représente une valeur non NULL représente une valeur non

disponible, non affectée, inconnue disponible, non affectée, inconnue ou inapplicable.ou inapplicable.

– La valeur NULL est différente du La valeur NULL est différente du zéro ou de l’espace.zéro ou de l’espace.

– NULL représente une valeur non NULL représente une valeur non disponible, non affectée, inconnue disponible, non affectée, inconnue ou inapplicable.ou inapplicable.

– La valeur NULL est différente du La valeur NULL est différente du zéro ou de l’espace.zéro ou de l’espace.

SQL> SELECT ename, job, comm 2 FROM emp;

ENAME JOB COMM---------- --------- ---------KING PRESIDENTBLAKE MANAGER...TURNER SALESMAN 0...14 rows selected.

Page 16: 01_FR

Valeurs NULL dans les Expressions Valeurs NULL dans les Expressions ArithmétiquesArithmétiquesValeurs NULL dans les Expressions Valeurs NULL dans les Expressions ArithmétiquesArithmétiques

• Les expressions arithmétiques Les expressions arithmétiques comportant une valeur NULL sont comportant une valeur NULL sont évaluées à NULLévaluées à NULL

• Les expressions arithmétiques Les expressions arithmétiques comportant une valeur NULL sont comportant une valeur NULL sont évaluées à NULLévaluées à NULLSQL> select ename NAME, 12*sal+comm 2 from emp 3 WHERE ename='KING';

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

Page 17: 01_FR

L’Alias de ColonneL’Alias de ColonneL’Alias de ColonneL’Alias de Colonne– Renomme un en-tête de colonneRenomme un en-tête de colonne– Est utile dans les calculsEst utile dans les calculs– Suit immédiatement le nom de la Suit immédiatement le nom de la

colonne ; le mot-clé AS placé entre colonne ; le mot-clé AS placé entre le nom et l’alias est optionnelle nom et l’alias est optionnel

– Doit obligatoirement être inclus Doit obligatoirement être inclus entre guillemets s’il contient des entre guillemets s’il contient des espaces, des caractères spéciaux espaces, des caractères spéciaux ou si les majuscules/minuscules ou si les majuscules/minuscules doivent être différenciées doivent être différenciées

– Renomme un en-tête de colonneRenomme un en-tête de colonne– Est utile dans les calculsEst utile dans les calculs– Suit immédiatement le nom de la Suit immédiatement le nom de la

colonne ; le mot-clé AS placé entre colonne ; le mot-clé AS placé entre le nom et l’alias est optionnelle nom et l’alias est optionnel

– Doit obligatoirement être inclus Doit obligatoirement être inclus entre guillemets s’il contient des entre guillemets s’il contient des espaces, des caractères spéciaux espaces, des caractères spéciaux ou si les majuscules/minuscules ou si les majuscules/minuscules doivent être différenciées doivent être différenciées

Page 18: 01_FR

Utilisation des Alias de Utilisation des Alias de ColonnesColonnesUtilisation des Alias de Utilisation des Alias de ColonnesColonnes

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

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

...

Page 19: 01_FR

L’Opérateur de L’Opérateur de ConcaténationConcaténationL’Opérateur de L’Opérateur de ConcaténationConcaténation

– Concatène des colonnes ou chaînes Concatène des colonnes ou chaînes de caractères avec d’autres de caractères avec d’autres colonnes colonnes

– Est représenté par deux barres Est représenté par deux barres verticales (||)verticales (||)

– La colonne résultante est une La colonne résultante est une expression caractèreexpression caractère

– Concatène des colonnes ou chaînes Concatène des colonnes ou chaînes de caractères avec d’autres de caractères avec d’autres colonnes colonnes

– Est représenté par deux barres Est représenté par deux barres verticales (||)verticales (||)

– La colonne résultante est une La colonne résultante est une expression caractèreexpression caractère

Page 20: 01_FR

Utilisation de l’Opérateur Utilisation de l’Opérateur de Concaténationde ConcaténationUtilisation de l’Opérateur Utilisation de l’Opérateur de Concaténationde Concaténation

SQL> SELECT ename||job AS "Employees" 2 FROM emp;

Employees-------------------KINGPRESIDENTBLAKEMANAGERCLARKMANAGERJONESMANAGERMARTINSALESMANALLENSALESMAN...14 rows selected.

Page 21: 01_FR

LittéralLittéralLittéralLittéral

– Un littéral est un caractère, une Un littéral est un caractère, une expression, ou un nombre inclus expression, ou un nombre inclus dans la liste SELECT.dans la liste SELECT.

– Les valeurs littérales de type date Les valeurs littérales de type date et caractère doivent être placées et caractère doivent être placées entre simples quotes.entre simples quotes.

– Chaque littéral apparaît sur chaque Chaque littéral apparaît sur chaque ligne ramenée.ligne ramenée.

– Un littéral est un caractère, une Un littéral est un caractère, une expression, ou un nombre inclus expression, ou un nombre inclus dans la liste SELECT.dans la liste SELECT.

– Les valeurs littérales de type date Les valeurs littérales de type date et caractère doivent être placées et caractère doivent être placées entre simples quotes.entre simples quotes.

– Chaque littéral apparaît sur chaque Chaque littéral apparaît sur chaque ligne ramenée.ligne ramenée.

Page 22: 01_FR

Utilisation des Chaînes de Utilisation des Chaînes de Caractères LittéralesCaractères Littérales

Utilisation des Chaînes de Utilisation des Chaînes de Caractères LittéralesCaractères Littérales

Employee Details-------------------------KING is a PRESIDENTBLAKE is a MANAGERCLARK is a MANAGERJONES is a MANAGERMARTIN is a SALESMAN...14 rows selected.

Employee Details-------------------------KING is a PRESIDENTBLAKE is a MANAGERCLARK is a MANAGERJONES is a MANAGERMARTIN is a SALESMAN...14 rows selected.

SQL> SELECT ename ||' '||'is a'||' '||job 2 AS "Employee Details" 3 FROM emp;

Page 23: 01_FR

Doublons Doublons Doublons Doublons • Par défaut, le résultat d’une Par défaut, le résultat d’une

requête affiche toutes les lignes, requête affiche toutes les lignes, y compris les doublons.y compris les doublons.

• Par défaut, le résultat d’une Par défaut, le résultat d’une requête affiche toutes les lignes, requête affiche toutes les lignes, y compris les doublons.y compris les doublons.

SQL> SELECT deptno 2 FROM emp;

SQL> SELECT deptno 2 FROM emp;

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

Page 24: 01_FR

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

SQL> SELECT DISTINCT deptno 2 FROM emp;

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

Page 25: 01_FR

Affichage de la Structure Affichage de la Structure d’une Tabled’une TableAffichage de la Structure Affichage de la Structure d’une Tabled’une Table

SQL> DESCRIBE deptSQL> DESCRIBE dept

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

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

Page 26: 01_FR

Présentation des ExercicesPrésentation des ExercicesPrésentation des ExercicesPrésentation des Exercices

– Afficher les données de différentes Afficher les données de différentes tables.tables.

– Afficher la structure des tables.Afficher la structure des tables.– Calculs arithmétiques et Calculs arithmétiques et

spécifications des noms de colonnes.spécifications des noms de colonnes.

– Afficher les données de différentes Afficher les données de différentes tables.tables.

– Afficher la structure des tables.Afficher la structure des tables.– Calculs arithmétiques et Calculs arithmétiques et

spécifications des noms de colonnes.spécifications des noms de colonnes.

Page 27: 01_FR

Exercices 1Exercices 1• 2.2. Créez une requête pour afficher le nom (ename),le poste (job), Créez une requête pour afficher le nom (ename),le poste (job),

la date d'embauche (hiredate) et le matricule (empno) de chaque la date d'embauche (hiredate) et le matricule (empno) de chaque employé, en plaçant le matricule en premier.employé, en plaçant le matricule en premier.– EMPNO ENAME JOB HIREDATEEMPNO ENAME JOB HIREDATE

----- ------- ----------- --------- ----- ------- ----------- ---------– 7839 KING PRESIDENT 17-NOV-817839 KING PRESIDENT 17-NOV-81

7698 BLAKE MANAGER 01-MAY-81 7698 BLAKE MANAGER 01-MAY-81 7782 CLARK MANAGER 09-JUN-81 7782 CLARK MANAGER 09-JUN-81 7566 JONES MANAGER 02-APR-81 7566 JONES MANAGER 02-APR-81 7654 MARTIN SALESMAN 28-SEP-81 7654 MARTIN SALESMAN 28-SEP-81 7499 ALLEN SALESMAN 20-FEB-81 7499 ALLEN SALESMAN 20-FEB-81 7844 TURNER SALESMAN 08-SEP-81 7844 TURNER SALESMAN 08-SEP-81 7900 JAMES CLERK 03-DEC-81 7900 JAMES CLERK 03-DEC-81 7521 WARD SALESMAN 22-FEB-81 7521 WARD SALESMAN 22-FEB-81 7902 FORD ANALYST 03-DEC-81 7902 FORD ANALYST 03-DEC-81 7369 SMITH CLERK 17-DEC-80 7369 SMITH CLERK 17-DEC-80 7788 SCOTT ANALYST 09-DEC-82 7788 SCOTT ANALYST 09-DEC-82 7876 ADAMS CLERK 12-JAN-83 7876 ADAMS CLERK 12-JAN-83 7934 MILLER CLERK 23-JAN-82 7934 MILLER CLERK 23-JAN-82 14 rows selected. 14 rows selected.

Page 28: 01_FR

• 3.3. Créez une requête pour afficher les Créez une requête pour afficher les différents types de poste existant dans la différents types de poste existant dans la table EMP.table EMP.

JOBJOB ----------- ----------- ANALYST ANALYST CLERK CLERK MANAGER MANAGER PRESIDENT PRESIDENT SALESMAN SALESMAN

Exercices 1Exercices 1