Samedi 18 juin 2011 6 18 /06 /Juin /2011 11:27

 

Commande Oracle SQL SELECT / FROM / WHERE.

Comment interroger, extraire des enregistrements d’une table avec l'ordre SELECT ?.

Nous allons voir très rapidement des instructions SELECT basiques.

SELECT permet d’extraire une ou plusieurs colonnes.
FROM permet de préciser le ou les tables ou sont stockées les valeurs.
WHERE permet de restreindre la recherche avec des conditions et restrictions.

 

SYNTAXE ORDRE SELECT BASIQUE

 
SELECT 
   [ { { DISTINCT | UNIQUE }  | ALL  } ]
   [ schema. ]
   { table | view | materialized view } .* | column | expr [ [ AS ] c_alias ]
FROM { table1 [, table2 ]...}
[ WHERE conditions ]

 

SELECT avec toutes les colonnes et lignes de la table EMP.

 
 
SQL> COLUMN empno FORMAT 9999
SQL> COLUMN ename FORMAT A7
SQL> COLUMN mgr FORMAT 9999
SQL> COLUMN sal FORMAT 9999
SQL> COLUMN comm FORMAT 9999
SQL> SELECT * FROM emp;

EMPNO ENAME   JOB         MGR HIREDATE     SAL  COMM     DEPTNO
----- ------- --------- ----- ---------- ----- ----- ----------
 7369 SMITH   CLERK      7902 17/12/1980   800               20
 7499 ALLEN   SALESMAN   7698 20/02/1981  1600   300         30
 7521 WARD    SALESMAN   7698 22/02/1981  1250   500         30
 7566 JONES   MANAGER    7839 02/04/1981  2975               20
 7654 MARTIN  SALESMAN   7698 28/09/1981  1250  1400         30
 7698 BLAKE   MANAGER    7839 01/05/1981  2850               30
 7782 CLARK   MANAGER    7839 09/06/1981  2450               10
 7788 SCOTT   ANALYST    7566 19/04/1987  3000               20
 7839 KING    PRESIDENT       17/11/1981  5000               10
 7844 TURNER  SALESMAN   7698 08/09/1981  1500     0         30
 7876 ADAMS   CLERK      7788 23/05/1987  1100               20

EMPNO ENAME   JOB         MGR HIREDATE     SAL  COMM     DEPTNO
----- ------- --------- ----- ---------- ----- ----- ----------
 7900 JAMES   CLERK      7698 03/12/1981   950               30
 7902 FORD    ANALYST    7566 03/12/1981  3000               20
 7934 MILLER  CLERK      7782 23/01/1982  1300               10

14 rows selected.

SQL>

 

SELECT de toutes les colonnes avec une condition (restriction) dans clause WHERE.

 
 
SQL> SELECT * FROM emp WHERE deptno=20;

EMPNO ENAME   JOB         MGR HIREDATE     SAL  COMM     DEPTNO
----- ------- --------- ----- ---------- ----- ----- ----------
 7369 SMITH   CLERK      7902 17/12/1980   800               20
 7566 JONES   MANAGER    7839 02/04/1981  2975               20
 7788 SCOTT   ANALYST    7566 19/04/1987  3000               20
 7876 ADAMS   CLERK      7788 23/05/1987  1100               20
 7902 FORD    ANALYST    7566 03/12/1981  3000               20

SQL>

 

SELECT colonnes Nom, Métier, et salaire avec une condition (restriction) dans clause WHERE.

 
 
SQL> SELECT ename, job, sal FROM emp WHERE sal >= 2975;

ENAME   JOB         SAL
------- --------- -----
JONES   MANAGER    2975
SCOTT   ANALYST    3000
KING    PRESIDENT  5000
FORD    ANALYST    3000

SQL>

 

SELECT avec Concaténation de colonnes et utilisation de AS alias pour nommer une colonne .

 
 
SQL> COLUMN "Concat Colonnes" FORMAT A55
SQL> SELECT      ename
  2           || ' fait parti du dept N '
  3           || deptno
  4           || ', son salaire est de '
  5           || sal AS "Concat Colonnes",
  6           job AS "Emploi"
  7    FROM   emp
  8   WHERE   sal >= 2975;

Concat Colonnes                                         Emploi
------------------------------------------------------- ---------
JONES fait parti du dept N 20, son salaire est de 2975  MANAGER
SCOTT fait parti du dept N 20, son salaire est de 3000  ANALYST
KING fait parti du dept N 10, son salaire est de 5000   PRESIDENT
FORD fait parti du dept N 20, son salaire est de 3000   ANALYST

SQL>

 

SELECT FROM DUAL ou Interrogation de la Pseudo-table DUAL.

La table DUAL est une table utilisable par tous (en lecture seulement) et qui appartient à l’utilisateur SYS.
L’interrogation de DUAL est utile pour évaluer une expression.

 
 
SQL> SELECT (2000*(10-2.5)) AS "Resultat" FROM DUAL;

  Resultat
----------
     15000

SQL> SELECT sysdate AS "Ma date" FROM DUAL;

Ma date
----------
18/06/2011

SQL>

 

 

Liens en rapport avec l'article et qui sont susceptibles de vous intéresser
• Update conditionnées de Tables avec MERGE INTO
• Oracle SQL GROUP BY ROLLUP
• Oracle SQL GROUP BY CUBE
Par Daniel Roesch - Publié dans : COMMANDES SQL DML-LMD
Ecrire un commentaire - Voir les 0 commentaires
Retour à l'accueil

Rechercher Articles Oracle SQL sur ce Site.

Loading

À lire aussi…

Download PDF Oracle

Rechercher sur le site

Oracle 10G - DBA -

Syndication

  • Flux RSS des articles
Contact - C.G.U. - Rémunération en droits d'auteur - Signaler un abus - Articles les plus commentés