création de vues | sql oracle
DESCRIPTION
Création de Vues, SQL Oracle. Telecharger cours dba oracle gratuit. administration de base de donnees oracleTRANSCRIPT
Copyright Oracle Corporation, 1998. Tous droits réservés.
1515
Création de VuesCréation de Vues
www.TelechargerCours.com
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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