01_fr
TRANSCRIPT
L'Ordre SELECT L'Ordre SELECT ElémentaireElémentaire
L'Ordre SELECT L'Ordre SELECT ElémentaireElémentaire
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
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
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
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é.
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;
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;
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
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
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.
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.
**** //// ++++ ____
Priorité des OpérateursPriorité des OpérateursPriorité des OpérateursPriorité des Opérateurs
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.
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.
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.
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
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
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
------------- -------------
...
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
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.
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.
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;
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.
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
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)
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.
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.
• 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