création de vues | sql oracle

20
Copyright Oracle Corporation, 1998. Tous droits réservés. 15 15 Création de Vues www.TelechargerCou rs.com

Upload: webreaker

Post on 22-Jun-2015

788 views

Category:

Education


3 download

DESCRIPTION

Création de Vues, SQL Oracle. Telecharger cours dba oracle gratuit. administration de base de donnees oracle

TRANSCRIPT

Page 1: Création de Vues | SQL Oracle

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

1515

Création de VuesCréation de Vues

www.TelechargerCours.com

Page 2: Création de Vues | SQL Oracle

15-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 une vue

• Créer une vue

• Extraire des données par le biais d'une vue

• Modifier la définition d'une vue

• Insérer, mettre à jour et supprimer des données par une vue

• Supprimer une vue

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

• Décrire une vue

• Créer une vue

• Extraire des données par le biais d'une vue

• Modifier la définition d'une vue

• Insérer, mettre à jour et supprimer des données par une vue

• Supprimer une vue

www.TelechargerCours.com

Page 3: Création de Vues | SQL Oracle

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

Objets de la Base de DonnéesObjets de la Base de Données

Description

Unité de base de stockage composée de lignes et de colonnes

Représentation logique de sous-ensembles

de données d'une ou de plusieurs tables

Génère les valeurs de la clé primaire

Améliore les performances de certaines requêtes

Autre nom attribué à un objet

Objet

Table

Vue

Séquence

Index

Synonyme

www.TelechargerCours.com

Page 4: Création de Vues | SQL Oracle

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

EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO

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

7839 KING PRESIDENT 17-NOV-81 5000 10

7782 CLARK MANAGER 7839 09-JUN-81 1500 300 10

7934 MILLER CLERK 7782 23-JAN-82 1300 10

7566 JONES MANAGER 7839 02-APR-81 2975 20

7788 SCOTT ANALYST 7566 09-DEC-82 3000 20

7876 ADAMS CLERK 7788 12-JAN-83 1100 20

7369 SMITH CLERK 7902 17-DEC-80 800 20

7902 FORD ANALYST 7566 03-DEC-81 3000 20

7698 BLAKE MANAGER 7839 01-MAY-81 2850 30

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

EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO

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

7839 KING PRESIDENT 17-NOV-81 5000 10

7782 CLARK MANAGER 7839 09-JUN-81 1500 300 10

7934 MILLER CLERK 7782 23-JAN-82 1300 10

7566 JONES MANAGER 7839 02-APR-81 2975 20

7788 SCOTT ANALYST 7566 09-DEC-82 3000 20

7876 ADAMS CLERK 7788 12-JAN-83 1100 20

7369 SMITH CLERK 7902 17-DEC-80 800 20

7902 FORD ANALYST 7566 03-DEC-81 3000 20

7698 BLAKE MANAGER 7839 01-MAY-81 2850 30

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

EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO

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

7839 KING PRESIDENT 17-NOV-81 5000 10

7782 CLARK MANAGER 7839 09-JUN-81 1500 300 10

7934 MILLER CLERK 7782 23-JAN-82 1300 10

7566 JONES MANAGER 7839 02-APR-81 2975 20

7788 SCOTT ANALYST 7566 09-DEC-82 3000 20

00 20

00 20

00 20

50 30

50 1400 30

00 300 30

00 0 30

7900 JAMES CLERK 7698 03-DEC-81 950 30

7521 WARD SALESMAN 7698 22-FEB-81 1250 500 30

Qu'est-ce qu'une Vue ?Qu'est-ce qu'une Vue ?Table EMPTable EMP

Vue Vue EMPVU10EMPVU10

EMPNO ENAME JOB ------ -------- ----------- 7839 KING PRESIDENT 7782 CLARK MANAGER 7934 MILLER CLERK

www.TelechargerCours.com

Page 5: Création de Vues | SQL Oracle

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

A Quoi Sert une Vue ?A Quoi Sert une Vue ?

• Limite l'accès à la base de données

• Facilite la création de requêtes complexes

• Garantit l'indépendance des données

• Présente les mêmes données sous différentes formes

• Limite l'accès à la base de données

• Facilite la création de requêtes complexes

• Garantit l'indépendance des données

• Présente les mêmes données sous différentes formes

www.TelechargerCours.com

Page 6: Création de Vues | SQL Oracle

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

Vues Simples et Vues Complexes

Vues Simples et Vues Complexes

Caractéristiques Vue simple Vue complexe

Nombre de tables Une Une ou plusieurs

Fonctions Non Oui

Groupes de données Non Oui

Opérations LMD Oui Pas toujours

Caractéristiques Vue simple Vue complexe

Nombre de tables Une Une ou plusieurs

Fonctions Non Oui

Groupes de données Non Oui

Opérations LMD Oui Pas toujours

www.TelechargerCours.com

Page 7: Création de Vues | SQL Oracle

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

Création d'une VueCréation d'une Vue

• Imbriquer une sous-interrogation dans l'ordre CREATE VIEW.

• La sous-requête peut contenir une syntaxe SELECT complexe.

• Elle ne peut pas contenir une clause ORDER BY.

• Imbriquer une sous-interrogation dans l'ordre CREATE VIEW.

• La sous-requête peut contenir une syntaxe SELECT complexe.

• Elle ne peut pas contenir une clause ORDER BY.

CREATE [OR REPLACE] [FORCE|NOFORCE] VIEW view [(alias[, alias]...)]AS subquery[WITH CHECK OPTION [CONSTRAINT constraint]][WITH READ ONLY]

CREATE [OR REPLACE] [FORCE|NOFORCE] VIEW view [(alias[, alias]...)]AS subquery[WITH CHECK OPTION [CONSTRAINT constraint]][WITH READ ONLY]

www.TelechargerCours.com

Page 8: Création de Vues | SQL Oracle

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

Création d'une VueCréation d'une Vue

• Créez la vue EMPVU10 pour afficher en détail les employés du département 10.

• Créez la vue EMPVU10 pour afficher en détail les employés du département 10.

• Décrivez la structure de la vue à l'aide de la commande SQL*Plus DESCRIBE.

• Décrivez la structure de la vue à l'aide de la commande SQL*Plus DESCRIBE.

SQL> DESCRIBE empvu10SQL> DESCRIBE empvu10

SQL> CREATE VIEW empvu10 2 AS SELECT empno, ename, job 3 FROM emp 4 WHERE deptno = 10;View created.View created.

www.TelechargerCours.com

Page 9: Création de Vues | SQL Oracle

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

Création d'une VueCréation d'une Vue

• Créez une vue à l'aide des alias de colonnes de la sous-interrogation.

• Sélectionnez les colonnes de cette vue par leur nom d'alias.

• Créez une vue à l'aide des alias de colonnes de la sous-interrogation.

• Sélectionnez les colonnes de cette vue par leur nom d'alias.

SQL> CREATE VIEW salvu30 2 AS SELECT empno EMPLOYEE_NUMBER, ename NAME, 3 sal SALARY 4 FROM emp 5 WHERE deptno = 30;View created.View created.

www.TelechargerCours.com

Page 10: Création de Vues | SQL Oracle

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

Extraction des Donnéesd'une Vue

Extraction des Donnéesd'une Vue

EMPLOYEE_NUMBER NAME SALARY--------------- ---------- --------- 7698 BLAKE 2850 7654 MARTIN 1250 7499 ALLEN 1600 7844 TURNER 1500 7900 JAMES 950 7521 WARD 1250

6 rows selected.

EMPLOYEE_NUMBER NAME SALARY--------------- ---------- --------- 7698 BLAKE 2850 7654 MARTIN 1250 7499 ALLEN 1600 7844 TURNER 1500 7900 JAMES 950 7521 WARD 1250

6 rows selected.

SQL> SELECT * 2 FROM salvu30;

www.TelechargerCours.com

Page 11: Création de Vues | SQL Oracle

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

Interrogation d’une VueInterrogation d’une Vue

USER_VIEWSUSER_VIEWS EMPVU10EMPVU10SELECT empno, ename, jobFROM empWHERE deptno = 10;

USER_VIEWSUSER_VIEWS EMPVU10EMPVU10SELECT empno, ename, jobFROM empWHERE deptno = 10;

SQL*PlusSQL*Plus

SELECT *FROM empvu10;

EMP

7839 KING PRESIDENT7782 CLARK MANAGER7934 MILLER CLERK

www.TelechargerCours.com

Page 12: Création de Vues | SQL Oracle

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

Modification d'une VueModification d'une Vue• Modifiez la vue EMPVU10 à l'aide de la clause

CREATE OR REPLACE VIEW. Ajoutez un alias pour chaque nom de colonne.

• Les alias de colonnes de la clause CREATE VIEW s'affichent dans le même ordre que les colonnes de la sous-interrogation.

• Modifiez la vue EMPVU10 à l'aide de la clause CREATE OR REPLACE VIEW. Ajoutez un alias pour chaque nom de colonne.

• Les alias de colonnes de la clause CREATE VIEW s'affichent dans le même ordre que les colonnes de la sous-interrogation.

SQL> CREATE OR REPLACE VIEW empvu10 2 (employee_number, employee_name, job_title) 3 AS SELECT empno, ename, job 4 FROM emp 5 WHERE deptno = 10;View created.View created.

www.TelechargerCours.com

Page 13: Création de Vues | SQL Oracle

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

Création d'une Vue ComplexeCréation d'une Vue ComplexeCréez une vue complexe qui inclut des Créez une vue complexe qui inclut des fonctions de groupe pour afficher des fonctions de groupe pour afficher des valeurs venant de deux tables.valeurs venant de deux tables.

Créez une vue complexe qui inclut des Créez une vue complexe qui inclut des fonctions de groupe pour afficher des fonctions de groupe pour afficher des valeurs venant de deux tables.valeurs venant de deux tables.SQL> CREATE VIEW dept_sum_vu 2 (name, minsal, maxsal, avgsal) 3 AS SELECT d.dname, MIN(e.sal), MAX(e.sal), 4 AVG(e.sal) 5 FROM emp e, dept d 6 WHERE e.deptno = d.deptno 7 GROUP BY d.dname;View created.View created.

www.TelechargerCours.com

Page 14: Création de Vues | SQL Oracle

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

Règles d'Exécution des Ordres du LMD dans une Vue

Règles d'Exécution des Ordres du LMD dans une Vue

• Vous pouvez exécuter des opérations du LMD dans des vues simples.

• Vous ne pouvez pas supprimer une ligne si la vue contient :

– Des fonctions de groupe

– Une clause GROUP BY

– Le mot-clé DISTINCT

• Vous pouvez exécuter des opérations du LMD dans des vues simples.

• Vous ne pouvez pas supprimer une ligne si la vue contient :

– Des fonctions de groupe

– Une clause GROUP BY

– Le mot-clé DISTINCT

www.TelechargerCours.com

Page 15: Création de Vues | SQL Oracle

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

Règles d'Exécution des Ordres du LMD dans une Vue

Règles d'Exécution des Ordres du LMD dans une Vue

• Vous ne pouvez pas modifier les données d'une vue si elle contient :– Une des conditions citées dans la page

précédente– Des colonnes définies par des expressions– La pseudocolonne ROWNUM

• Vous ne pouvez pas ajouter de données si :

– La vue contient une des conditions citées ci-dessus ou dans la page précédente

– Les tables de base contiennent des colonnes NOT NULL non sélectionnées par la vue

• Vous ne pouvez pas modifier les données d'une vue si elle contient :– Une des conditions citées dans la page

précédente– Des colonnes définies par des expressions– La pseudocolonne ROWNUM

• Vous ne pouvez pas ajouter de données si :

– La vue contient une des conditions citées ci-dessus ou dans la page précédente

– Les tables de base contiennent des colonnes NOT NULL non sélectionnées par la vue

Page 16: Création de Vues | SQL Oracle

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

Utilisation de la Clause WITH CHECK OPTION

Utilisation de la Clause WITH CHECK OPTION

• Vous pouvez garantir que le LMD reste dans le domaine de la vue à l'aide de la clause WITH CHECK OPTION.

• Vous pouvez garantir que le LMD reste dans le domaine de la vue à l'aide de la clause WITH CHECK OPTION.

• Toute tentative de modification du numéro de département dans une ligne de la vue échouera, car elle transgresse la contrainte WITH CHECK OPTION.

• Toute tentative de modification du numéro de département dans une ligne de la vue échouera, car elle transgresse la contrainte WITH CHECK OPTION.

SQL> CREATE OR REPLACE VIEW empvu20 2 AS SELECT * 3 FROM emp 4 WHERE deptno = 20 5 WITH CHECK OPTION CONSTRAINT empvu20_ck;View created.View created.

www.TelechargerCours.com

Page 17: Création de Vues | SQL Oracle

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

Refus des Ordres du LMDRefus des Ordres du LMD• Aucune opération du LMD ne pourra

être exécutée si vous ajoutez l'option WITH READ ONLY dans la définition de votre vue.

• Aucune opération du LMD ne pourra être exécutée si vous ajoutez l'option WITH READ ONLY dans la définition de votre vue.

SQL> CREATE OR REPLACE VIEW empvu10 2 (employee_number, employee_name, job_title) 3 AS SELECT empno, ename, job 4 FROM emp 5 WHERE deptno = 10 6 WITH READ ONLY;View created.View created.

• Toute tentative d'exécution d'un ordre du LMD sur une ligne de la vue génère l'erreur Oracle8 Server ORA-01752.

• Toute tentative d'exécution d'un ordre du LMD sur une ligne de la vue génère l'erreur Oracle8 Server ORA-01752.

www.TelechargerCours.com

Page 18: Création de Vues | SQL Oracle

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

Suppression d'une VueSuppression d'une Vue

• La suppression d'une vue n'entraîne pas la perte des données, car toute vue est basée sur des tables sous-jacentes de la base de données.

• La suppression d'une vue n'entraîne pas la perte des données, car toute vue est basée sur des tables sous-jacentes de la base de données.

SQL> DROP VIEW empvu10; View dropped.View dropped.

DROP VIEW view; DROP VIEW view;

www.TelechargerCours.com

Page 19: Création de Vues | SQL Oracle

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

RésuméRésumé• Une vue est dérivée des données d'autres

tables ou d'autres vues.

• Une vue offre les avantages suivants :

– Restreint L'accès à la base de données

– Les requêtes sont simplifiées

– Indépendance de données

– Visualisation des mêmes données sous différentes formes

– Peut être supprimée sans perdre les données sous-jacentes

• Une vue est dérivée des données d'autres tables ou d'autres vues.

• Une vue offre les avantages suivants :

– Restreint L'accès à la base de données

– Les requêtes sont simplifiées

– Indépendance de données

– Visualisation des mêmes données sous différentes formes

– Peut être supprimée sans perdre les données sous-jacentes

www.TelechargerCours.com

Page 20: Création de Vues | SQL Oracle

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

Présentation des ExercicesPrésentation des Exercices

• Création d'une vue simple

• Création d'une vue complexe

• Création d'une vue avec une contrainte d’intégrité

• Modification des données d'une vue

• Affichage des définitions de vues

• Suppression de vues

• Création d'une vue simple

• Création d'une vue complexe

• Création d'une vue avec une contrainte d’intégrité

• Modification des données d'une vue

• Affichage des définitions de vues

• Suppression de vues

www.TelechargerCours.com