Copyright Oracle Corporation, Tous droits réservés. 2 Sélection et Tri des Lignes Retournées par un SELECT
2-2 Copyright Oracle Corporation, 1998.Tous droits réservés. Objectifs A la fin de ce chapitre, vous saurez : Limiter le nombre de lignes retournées par une requête Trier les lignes retournées par une requête A la fin de ce chapitre, vous saurez : Limiter le nombre de lignes retournées par une requête Trier les lignes retournées par une requête
2-3 Copyright Oracle Corporation, 1998.Tous droits réservés. Sélectionner les Lignes “…rechercher tous les employés du département 10” EMP EMPNO ENAME JOB... DEPTNO 7839KINGPRESIDENT BLAKEMANAGER CLARKMANAGER JONESMANAGER EMP EMPNO ENAME JOB... DEPTNO 7839KINGPRESIDENT CLARKMANAGER MILLERCLERK 10
2-4 Copyright Oracle Corporation, 1998.Tous droits réservés. Sélectionner les Lignes Restreindre la sélection au moyen de la clause WHERE. La clause WHERE se place après la clause FROM. Restreindre la sélection au moyen de la clause WHERE. La clause WHERE se place après la clause FROM. SELECT[DISTINCT] {*, column [alias],...} FROM table [WHEREcondition(s)];
2-5 Copyright Oracle Corporation, 1998.Tous droits réservés. Utilisation de la Clause WHERE SQL> SELECT ename, job, deptno 2 FROM emp 3 WHERE job='CLERK'; ENAME JOB DEPTNO JAMES CLERK 30 SMITH CLERK 20 ADAMS CLERK 20 MILLER CLERK 10
2-6 Copyright Oracle Corporation, 1998.Tous droits réservés. Chaînes de Caractères et Dates Les constantes chaînes de caractères et dates doivent être placées entre simples quotes. La recherche tient compte des majuscules et minuscules (pour les chaînes de caractère) et du format (pour les dates.) Le format de date par défaut est 'DD-MON-YY'. Les constantes chaînes de caractères et dates doivent être placées entre simples quotes. La recherche tient compte des majuscules et minuscules (pour les chaînes de caractère) et du format (pour les dates.) Le format de date par défaut est 'DD-MON-YY'. SQL> SELECTename, job, deptno 2 FROM emp 3 WHEREename = 'JAMES'; SQL> SELECTename, job, deptno 2 FROM emp 3 WHEREename = 'JAMES';
2-7 Copyright Oracle Corporation, 1998.Tous droits réservés. Opérateurs de Comparaison Opérateur = > >= < <= <> Signification Egal à Supérieur à Supérieur ou égal à Inférieur à Inférieur ou égal à Différent de
2-8 Copyright Oracle Corporation, 1998.Tous droits réservés. Utilisation des Opérateurs de Comparaison SQL> SELECT ename, sal, comm 2 FROM emp 3 WHERE sal<=comm; ENAME SAL COMM MARTIN
2-9 Copyright Oracle Corporation, 1998.Tous droits réservés. Autres Opérateurs de Comparaison Opérateur BETWEEN...AND... IN (liste) LIKE IS NULL Signification Compris entre... et... (bornes comprises) Correspond à une valeur de la liste Ressemblance partielle de chaînes de caractères Correspond à une valeur NULL
2-10 Copyright Oracle Corporation, 1998.Tous droits réservés. Utilisation de l’Opérateur BETWEEN ENAME SAL MARTIN 1250 TURNER 1500 WARD 1250 ADAMS 1100 MILLER 1300 SQL> SELECTename, sal 2 FROM emp 3 WHEREsal BETWEEN 1000 AND 1500; Limite inférieure Limite supérieure BETWEEN permet de tester l'appartenance à une fourchette de valeurs.
2-11 Copyright Oracle Corporation, 1998.Tous droits réservés. Utilisation de l’Opérateur IN IN permet de comparer une expression avec une liste de valeurs. SQL> SELECTempno, ename, sal, mgr 2 FROM emp 3 WHEREmgr IN (7902, 7566, 7788); EMPNO ENAME SAL MGR FORD SMITH SCOTT ADAMS
2-12 Copyright Oracle Corporation, 1998.Tous droits réservés. Utilisation de l’Opérateur LIKE LIKE permet de rechercher des chaînes de caractères à l'aide de caractères génériques Les conditions de recherche peuvent contenir des caractères ou des nombres littéraux. – (%) représente zéro ou plusieurs caractères – ( _ ) représente un caractère LIKE permet de rechercher des chaînes de caractères à l'aide de caractères génériques Les conditions de recherche peuvent contenir des caractères ou des nombres littéraux. – (%) représente zéro ou plusieurs caractères – ( _ ) représente un caractère SQL> SELECTename 2 FROM emp 3 WHEREename LIKE 'S%';
2-13 Copyright Oracle Corporation, 1998.Tous droits réservés. Utilisation de l’Opérateur LIKE Vous pouvez combiner plusieurs caractères génériques de recherche. Vous pouvez utiliser l’identifiant ESCAPE pour rechercher "%" ou "_". Vous pouvez combiner plusieurs caractères génériques de recherche. Vous pouvez utiliser l’identifiant ESCAPE pour rechercher "%" ou "_". SQL> SELECTename 2 FROMemp 3 WHEREename LIKE '_A%'; ENAME JAMES WARD
2-14 Copyright Oracle Corporation, 1998.Tous droits réservés. Utilisation de l’Opérateur IS NULL Recherche de valeurs NULL avec l’opérateur IS NULL SQL> SELECT ename, mgr 2 FROM emp 3 WHERE mgr IS NULL; ENAME MGR KING
2-15 Copyright Oracle Corporation, 1998.Tous droits réservés. Opérateurs Logiques Opérateur AND OR NOT Signification Retourne TRUE si les deux conditions sont VRAIES Retourne TRUE si l’une au moins des conditions est VRAIE Ramène la valeur TRUE si la condition qui suit l’opérateur est FAUSSE
2-16 Copyright Oracle Corporation, 1998.Tous droits réservés. Utilisation de l’Opérateur AND Avec AND, les deux conditions doivent être VRAIES. SQL> SELECT empno, ename, job, sal 2 FROM emp 3 WHERE sal>= AND job='CLERK'; EMPNO ENAME JOB SAL ADAMS CLERK MILLER CLERK 1300
2-17 Copyright Oracle Corporation, 1998.Tous droits réservés. Utilisation de l’Opérateur OR Avec OR, l'une ou l'autre des deux conditions doit être VRAIE. Avec OR, l'une ou l'autre des deux conditions doit être VRAIE. SQL> SELECT empno, ename, job, sal 2 FROM emp 3 WHERE sal>= OR job='CLERK'; EMPNO ENAME JOB SAL KING PRESIDENT BLAKE MANAGER CLARK MANAGER JONES MANAGER MARTIN SALESMAN rows selected.
2-18 Copyright Oracle Corporation, 1998.Tous droits réservés. Utilisation de l’Opérateur NOT SQL> SELECT ename, job 2 FROM emp 3 WHERE job NOT IN ('CLERK','MANAGER','ANALYST'); ENAME JOB KING PRESIDENT MARTIN SALESMAN ALLEN SALESMAN TURNER SALESMAN WARD SALESMAN... WHERE sal NOT BETWEEN 1000 AND WHERE ename NOT LIKE ’%A%’... WHERE comm IS NOT NULL
2-19 Copyright Oracle Corporation, 1998.Tous droits réservés. Règles de Priorité Les parenthèses permettent de modifier les règles de priorité Ordre de priorité Opérateur 1Tous les opérateurs de comparaison 2NOT 3AND 4OR
2-20 Copyright Oracle Corporation, 1998.Tous droits réservés. Règles de Priorité ENAME JOB SAL KING PRESIDENT 5000 MARTIN SALESMAN 1250 ALLEN SALESMAN 1600 TURNER SALESMAN 1500 WARD SALESMAN 1250 ENAME JOB SAL KING PRESIDENT 5000 MARTIN SALESMAN 1250 ALLEN SALESMAN 1600 TURNER SALESMAN 1500 WARD SALESMAN 1250 SQL> SELECT ename, job, sal 2 FROM emp 3 WHERE job='SALESMAN' 4 OR job='PRESIDENT' 5 AND sal>1500;
2-21 Copyright Oracle Corporation, 1998.Tous droits réservés. Règles de Priorité ENAME JOB SAL KING PRESIDENT 5000 ALLEN SALESMAN 1600 ENAME JOB SAL KING PRESIDENT 5000 ALLEN SALESMAN 1600 Utilisation de parenthèses pour forcer la priorité. Utilisation de parenthèses pour forcer la priorité. SQL> SELECT ename, job, sal 2 FROM emp 3 WHERE (job='SALESMAN' 4 OR job='PRESIDENT') 5 AND sal>1500;
2-22 Copyright Oracle Corporation, 1998.Tous droits réservés. Clause ORDER BY Tri des lignes avec la clause ORDER BY – ASC : ordre croissant (par défaut) – DESC : ordre décroissant La clause ORDER BY se place à la fin de l’ordre SELECT Tri des lignes avec la clause ORDER BY – ASC : ordre croissant (par défaut) – DESC : ordre décroissant La clause ORDER BY se place à la fin de l’ordre SELECT SQL> SELECT ename, job, deptno, hiredate 2 FROM emp 3 ORDER BY hiredate; ENAME JOB DEPTNO HIREDATE SMITH CLERK DEC-80 ALLEN SALESMAN FEB rows selected.
2-23 Copyright Oracle Corporation, 1998.Tous droits réservés. Tri par Ordre Décroissant SQL> SELECT ename, job, deptno, hiredate 2 FROM emp 3 ORDER BY hiredate DESC; ENAME JOB DEPTNO HIREDATE ADAMS CLERK JAN-83 SCOTT ANALYST DEC-82 MILLER CLERK JAN-82 JAMES CLERK DEC-81 FORD ANALYST DEC-81 KING PRESIDENT NOV-81 MARTIN SALESMAN SEP rows selected.
2-24 Copyright Oracle Corporation, 1998.Tous droits réservés. Tri sur l’Alias de Colonne SQL> SELECT empno, ename, sal*12 annsal 2 FROM emp 3 ORDER BY annsal; EMPNO ENAME ANNSAL SMITH JAMES ADAMS MARTIN WARD MILLER TURNER rows selected.
2-25 Copyright Oracle Corporation, 1998.Tous droits réservés. Tri sur Plusieurs Colonnes L’ordre des éléments de la liste ORDER BY donne l’ordre du tri. Vous pouvez effectuer un tri sur une colonne ne figurant pas dans la liste SELECT. SQL> SELECTename, deptno, sal 2 FROM emp 3 ORDER BY deptno, sal DESC; ENAME DEPTNO SAL KING CLARK MILLER FORD rows selected.
2-26 Copyright Oracle Corporation, 1998.Tous droits réservés. Résumé SELECT[DISTINCT] {*, column [alias],...} FROM table [WHEREcondition(s)] [ORDER BY{column, expr, alias} [ASC|DESC]];