opérateurs ensemblistes | sql oracle

17
Copyright Oracle Corporation, 1998. Tous droits réservés. 6 6 Opérateurs Ensemblistes www.TelechargerCours.com

Upload: webreaker

Post on 26-Jun-2015

510 views

Category:

Education


8 download

DESCRIPTION

Opérateurs Ensemblistes | SQL Oracle. Telecharger Cours sql oracle gratuit, administration oracle,A la fin de ce chapitre, vous saurez : Décrire les opérateurs ensemblistes Utiliser un opérateur ensembliste pour combiner plusieurs requêtes en une seule Vérifier l'ordre des lignes ramenées

TRANSCRIPT

Page 1: Opérateurs Ensemblistes | SQL Oracle

Copyright Oracle Corporation, 1998. Tous droits réservés.

66

Opérateurs EnsemblistesOpérateurs Ensemblistes

www.TelechargerCours.com

Page 2: Opérateurs Ensemblistes | SQL Oracle

6-2 Copyright Oracle Corporation, 1998. Tous droits réservés.

ObjectifsObjectifs

A la fin de ce chapitre, vous saurez :A la fin de ce chapitre, vous saurez :

• Décrire les opérateurs ensemblistes

• Utiliser un opérateur ensembliste pour combiner plusieurs requêtes en une seule

• Vérifier l'ordre des lignes ramenées

A la fin de ce chapitre, vous saurez :A la fin de ce chapitre, vous saurez :

• Décrire les opérateurs ensemblistes

• Utiliser un opérateur ensembliste pour combiner plusieurs requêtes en une seule

• Vérifier l'ordre des lignes ramenées

www.TelechargerCours.com

Page 3: Opérateurs Ensemblistes | SQL Oracle

6-3 Copyright Oracle Corporation, 1998. Tous droits réservés.

IntersectIntersect

AA BB

AA BB

UnionUnion / Union All/ Union All

AA BB

AA BB

MinusMinus

Opérateurs EnsemblistesOpérateurs Ensemblisteswww.TelechargerCours.com

Page 4: Opérateurs Ensemblistes | SQL Oracle

6-4 Copyright Oracle Corporation, 1998. Tous droits réservés.

Tables Utilisées dans ce ChapitreTables Utilisées dans ce Chapitre EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO--------- ---------- --------- --------- --------- --------- --------- --------- 7839 KING PRESIDENT 17-NOV-81 5000 10 7698 BLAKE MANAGER 7839 01-MAY-81 2850 30 7782 CLARK MANAGER 7839 09-JUN-81 1500 10 7566 JONES MANAGER 7839 02-APR-81 2975 20 7654 MARTIN SALESMAN 7698 28-SEP-81 1250 1400 30 7499 ALLEN SALESMAN 7698 20-FEB-81 1600 300 30 7844 TURNER SALESMAN 7698 08-SEP-81 1500 0 30 7900 JAMES CLERK 7698 03-DEC-81 950 30 7521 WARD SALESMAN 7698 22-FEB-81 1250 500 30 7902 FORD ANALYST 7566 03-DEC-81 3000 20 7369 SMITH CLERK 7902 17-DEC-80 800 20 7788 SCOTT ANALYST 7566 09-DEC-82 3000 20 7876 ADAMS CLERK 7788 12-JAN-83 1100 20 7934 MILLER CLERK 7782 23-JAN-82 1300 10

EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO--------- ---------- --------- --------- --------- --------- --------- --------- 7839 KING PRESIDENT 17-NOV-81 5000 10 7698 BLAKE MANAGER 7839 01-MAY-81 2850 30 7782 CLARK MANAGER 7839 09-JUN-81 1500 10 7566 JONES MANAGER 7839 02-APR-81 2975 20 7654 MARTIN SALESMAN 7698 28-SEP-81 1250 1400 30 7499 ALLEN SALESMAN 7698 20-FEB-81 1600 300 30 7844 TURNER SALESMAN 7698 08-SEP-81 1500 0 30 7900 JAMES CLERK 7698 03-DEC-81 950 30 7521 WARD SALESMAN 7698 22-FEB-81 1250 500 30 7902 FORD ANALYST 7566 03-DEC-81 3000 20 7369 SMITH CLERK 7902 17-DEC-80 800 20 7788 SCOTT ANALYST 7566 09-DEC-82 3000 20 7876 ADAMS CLERK 7788 12-JAN-83 1100 20 7934 MILLER CLERK 7782 23-JAN-82 1300 10

EMPEMP

EMP_HISTORYEMP_HISTORY

EMPID NAME TITLE DATE_OUT DEPTID--------- -------------------- --------- --------- --------- 6087 SPENCER OPERATOR 27-NOV-81 20 6185 VANDYKE MANAGER 17-JAN-81 10 6235 BALFORD CLERK 22-FEB-80 20 7788 SCOTT ANALYST 05-MAY-81 20 7001 JEWELL ANALYST 10-JUN-81 30 7499 ALLEN SALESMAN 01-AUG-80 20 7225 BRIGGS PAY CLERK 27-NOV-81 10 7782 CLARK MANAGER 12-FEB-80 10 7356 WILD DIRECTOR 01-NOV-81 10

EMPID NAME TITLE DATE_OUT DEPTID--------- -------------------- --------- --------- --------- 6087 SPENCER OPERATOR 27-NOV-81 20 6185 VANDYKE MANAGER 17-JAN-81 10 6235 BALFORD CLERK 22-FEB-80 20 7788 SCOTT ANALYST 05-MAY-81 20 7001 JEWELL ANALYST 10-JUN-81 30 7499 ALLEN SALESMAN 01-AUG-80 20 7225 BRIGGS PAY CLERK 27-NOV-81 10 7782 CLARK MANAGER 12-FEB-80 10 7356 WILD DIRECTOR 01-NOV-81 10

www.TelechargerCours.com

Page 5: Opérateurs Ensemblistes | SQL Oracle

6-5 Copyright Oracle Corporation, 1998. Tous droits réservés.

UNIONUNION

AA BB

www.TelechargerCours.com

Page 6: Opérateurs Ensemblistes | SQL Oracle

6-6 Copyright Oracle Corporation, 1998. Tous droits réservés.

Utilisation de l'Opérateur UNIONUtilisation de l'Opérateur UNIONAffichez le nom, le poste et le département Affichez le nom, le poste et le département de tous les employés.de tous les employés.Affichez le nom, le poste et le département Affichez le nom, le poste et le département de tous les employés.de tous les employés.

ENAME JOB DEPTNO---------- --------- ---------ADAMS CLERK 30ALLEN SALESMAN 30ALLEN SALESMAN 20BALFORD CLERK 20BLAKE MANAGER 30...20 rows selected.

SQL> SELECT ename, job, deptno 2 FROM emp 3 UNION 4 SELECT name, title, deptid 5 FROM emp_history;

www.TelechargerCours.com

Page 7: Opérateurs Ensemblistes | SQL Oracle

6-7 Copyright Oracle Corporation, 1998. Tous droits réservés.

Utilisation de l'Opérateur UNIONUtilisation de l'Opérateur UNIONAffichez le nom, le poste et le département Affichez le nom, le poste et le département et le salaire de tous les employés.et le salaire de tous les employés.Affichez le nom, le poste et le département Affichez le nom, le poste et le département et le salaire de tous les employés.et le salaire de tous les employés.

ENAME JOB DEPTNO SAL---------- --------- --------- ---------ADAMS CLERK 30 1100ALLEN SALESMAN 30 0ALLEN SALESMAN 20 1600BALFORD CLERK 20 0BLAKE MANAGER 30...20 rows selected.

SQL> SELECT ename, job, deptno,sal 2 FROM emp 3 UNION 4 SELECT name, title, deptid,0 5 FROM emp_history;

www.TelechargerCours.com

Page 8: Opérateurs Ensemblistes | SQL Oracle

6-8 Copyright Oracle Corporation, 1998. Tous droits réservés.

UNION ALLUNION ALL

AA BB

www.TelechargerCours.com

Page 9: Opérateurs Ensemblistes | SQL Oracle

6-9 Copyright Oracle Corporation, 1998. Tous droits réservés.

Utilisation de l'OpérateurUNION ALL

Utilisation de l'OpérateurUNION ALL

Affichez le nom, le numéro et le poste de tous les employés. Affichez le nom, le numéro et le poste de tous les employés. Affichez le nom, le numéro et le poste de tous les employés. Affichez le nom, le numéro et le poste de tous les employés.

SQL> SELECT ename, empno, job 2 FROM emp 3 UNION ALL 4 SELECT name, empid, title 5 FROM emp_history;

ENAME EMPNO JOB---------- --------- ---------KING 7839 PRESIDENTBLAKE 7698 MANAGERCLARK 7782 MANAGERCLARK 7782 MANAGERMARTIN 7654 SALESMAN...23 rows selected.

www.TelechargerCours.com

Page 10: Opérateurs Ensemblistes | SQL Oracle

6-10 Copyright Oracle Corporation, 1998. Tous droits réservés.

INTERSECTINTERSECT

AA BB

www.TelechargerCours.com

Page 11: Opérateurs Ensemblistes | SQL Oracle

6-11 Copyright Oracle Corporation, 1998. Tous droits réservés.

Utilisation de l'Opérateur INTERSECT

Utilisation de l'Opérateur INTERSECT

Affichez les différents noms, numéros et postes Affichez les différents noms, numéros et postes des employés présents dans les tables EMP et des employés présents dans les tables EMP et EMP_HISTORY.EMP_HISTORY.

Affichez les différents noms, numéros et postes Affichez les différents noms, numéros et postes des employés présents dans les tables EMP et des employés présents dans les tables EMP et EMP_HISTORY.EMP_HISTORY.

ENAME EMPNO JOB---------- --------- ---------ALLEN 7499 SALESMANCLARK 7782 MANAGERSCOTT 7788 ANALYST

ENAME EMPNO JOB---------- --------- ---------ALLEN 7499 SALESMANCLARK 7782 MANAGERSCOTT 7788 ANALYST

SQL> SELECT ename, empno, job 2 FROM emp 3 INTERSECT 4 SELECT name, empid, title 5 FROM emp_history;

www.TelechargerCours.com

Page 12: Opérateurs Ensemblistes | SQL Oracle

6-12 Copyright Oracle Corporation, 1998. Tous droits réservés.

MINUSMINUS

AA BB

www.TelechargerCours.com

Page 13: Opérateurs Ensemblistes | SQL Oracle

6-13 Copyright Oracle Corporation, 1998. Tous droits réservés.

MINUSMINUS

Affichez le nom,le numéro et le poste de Affichez le nom,le numéro et le poste de tous les employés ayant quitté la société.tous les employés ayant quitté la société.Affichez le nom,le numéro et le poste de Affichez le nom,le numéro et le poste de tous les employés ayant quitté la société.tous les employés ayant quitté la société.

NAME EMPID TITLE---------- --------- ---------BALFORD 6235 CLERKBRIGGS 7225 PAY CLERKJEWELL 7001 ANALYSTSPENCER 6087 OPERATOR...6 rows selected.

NAME EMPID TITLE---------- --------- ---------BALFORD 6235 CLERKBRIGGS 7225 PAY CLERKJEWELL 7001 ANALYSTSPENCER 6087 OPERATOR...6 rows selected.

SQL> SELECT name, empid, title 2 FROM emp_history 3 MINUS 4 SELECT ename, empno, job 5 FROM emp;

www.TelechargerCours.com

Page 14: Opérateurs Ensemblistes | SQL Oracle

6-14 Copyright Oracle Corporation, 1998. Tous droits réservés.

Règles des Opérateurs Ensemblistes

Règles des Opérateurs Ensemblistes

• Les expressions citées dans la clause SELECT doivent être égales en nombre et avoir des données du même type.

• Les doublons sont automatiquement éliminés, sauf avec l'opérateur UNION ALL.

• Les noms de colonnes apparaissant dans le résultat sont ceux de la première requête.

• Par défaut, le résultat est trié par ordre croissant, sauf avec l’opérateur UNION ALL.

• Utilisez des parenthèses pour modifier la séquence d'exécution.

• Les expressions citées dans la clause SELECT doivent être égales en nombre et avoir des données du même type.

• Les doublons sont automatiquement éliminés, sauf avec l'opérateur UNION ALL.

• Les noms de colonnes apparaissant dans le résultat sont ceux de la première requête.

• Par défaut, le résultat est trié par ordre croissant, sauf avec l’opérateur UNION ALL.

• Utilisez des parenthèses pour modifier la séquence d'exécution.

Page 15: Opérateurs Ensemblistes | SQL Oracle

6-15 Copyright Oracle Corporation, 1998. Tous droits réservés.

Correspondance des clauses SELECT

Correspondance des clauses SELECT

SQL> SELECT deptno, TO_CHAR(NULL) location, hiredate 2 FROM emp 3 UNION 4 SELECT deptno, loc, TO_DATE(NULL) 5 FROM dept;

SQL> SELECT deptno, TO_CHAR(NULL) location, hiredate 2 FROM emp 3 UNION 4 SELECT deptno, loc, TO_DATE(NULL) 5 FROM dept;

Affichez le numéro du département, le lieu Affichez le numéro du département, le lieu et la date d'embauche de tous les et la date d'embauche de tous les employés.employés.

Affichez le numéro du département, le lieu Affichez le numéro du département, le lieu et la date d'embauche de tous les et la date d'embauche de tous les employés.employés.

DEPTNO LOCATION HIREDATE--------- ------------- --------- 10 NEW YORK 10 09-JUN-81 10 17-NOV-81 10 23-JAN-82 10 20 DALLAS 20 17-DEC-80...19 rows selected.

DEPTNO LOCATION HIREDATE--------- ------------- --------- 10 NEW YORK 10 09-JUN-81 10 17-NOV-81 10 23-JAN-82 10 20 DALLAS 20 17-DEC-80...19 rows selected.

Page 16: Opérateurs Ensemblistes | SQL Oracle

6-16 Copyright Oracle Corporation, 1998. Tous droits réservés.

Contrôler l'Ordre des LignesContrôler l'Ordre des Lignes

Créez une phrase anglaise à l'aide de Créez une phrase anglaise à l'aide de deux opérateurs UNION.deux opérateurs UNION.Créez une phrase anglaise à l'aide de Créez une phrase anglaise à l'aide de deux opérateurs UNION.deux opérateurs UNION.

My dream ------------------------- I'd like to teach the world to sing

My dream ------------------------- I'd like to teach the world to sing

SQL> COLUMN a_dummy NOPRINTSQL> SELECT 'to sing' "My dream", 3 a_dummy 2 FROM dual 3 UNION 4 SELECT 'I''d like to teach', 1 5 FROM dual 6 UNION 7 SELECT 'the world', 2 8 FROM dual 9 ORDER BY 2;

SQL> COLUMN a_dummy NOPRINTSQL> SELECT 'to sing' "My dream", 3 a_dummy 2 FROM dual 3 UNION 4 SELECT 'I''d like to teach', 1 5 FROM dual 6 UNION 7 SELECT 'the world', 2 8 FROM dual 9 ORDER BY 2;

www.TelechargerCours.com

Page 17: Opérateurs Ensemblistes | SQL Oracle

6-17 Copyright Oracle Corporation, 1998. Tous droits réservés.

RésuméRésumé• L'opérateur UNION ramène toutes les

lignes distinctes.

• L'opérateur UNION ALL ramène toutes les lignes, y compris les doublons.

• L'opérateur INTERSECT ramène toutes les lignes partagées par deux requêtes.

• L'opérateur MINUS ramène toutes les lignes distinctes sélectionnées par la première requête, et non par la seconde.

• La clause ORDER BY doit être placée à la fin de l'ordre.

• L'opérateur UNION ramène toutes les lignes distinctes.

• L'opérateur UNION ALL ramène toutes les lignes, y compris les doublons.

• L'opérateur INTERSECT ramène toutes les lignes partagées par deux requêtes.

• L'opérateur MINUS ramène toutes les lignes distinctes sélectionnées par la première requête, et non par la seconde.

• La clause ORDER BY doit être placée à la fin de l'ordre.

www.TelechargerCours.com