Copyright © Oracle Corporation, 1998. Tous droits réservés.
1515
Création de Vues
www.TelechargerCours.com
15-2 Copyright © Oracle Corporation, 1998. Tous droits réservés.
Objectifs
A la fin de ce chapitre, vous saurez :A la fin ...
15-3 Copyright © Oracle Corporation, 1998. Tous droits réservés.
Objets de la Base de Données
Description
Unité de base de...
15-4 Copyright © Oracle Corporation, 1998. Tous droits réservés.
EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO
----- ------...
15-5 Copyright © Oracle Corporation, 1998. Tous droits réservés.
A Quoi Sert une Vue ?
• Limite l'accès à la base de donné...
15-6 Copyright © Oracle Corporation, 1998. Tous droits réservés.
Vues Simples
et Vues Complexes
Caractéristiques Vue simpl...
15-7 Copyright © Oracle Corporation, 1998. Tous droits réservés.
Création d'une Vue
• Imbriquer une sous-interrogation dan...
15-8 Copyright © Oracle Corporation, 1998. Tous droits réservés.
Création d'une Vue
• Créez la vue EMPVU10 pour afficher e...
15-9 Copyright © Oracle Corporation, 1998. Tous droits réservés.
Création d'une Vue
• Créez une vue à l'aide des alias de
...
15-10 Copyright © Oracle Corporation, 1998. Tous droits réservés.
Extraction des Données
d'une Vue
EMPLOYEE_NUMBER NAME SA...
15-11 Copyright © Oracle Corporation, 1998. Tous droits réservés.
Interrogation d’une Vue
USER_VIEWSUSER_VIEWS
EMPVU10EMPV...
15-12 Copyright © Oracle Corporation, 1998. Tous droits réservés.
Modification d'une Vue
• Modifiez la vue EMPVU10 à l'aid...
15-13 Copyright © Oracle Corporation, 1998. Tous droits réservés.
Création d'une Vue Complexe
Créez une vue complexe qui i...
15-14 Copyright © Oracle Corporation, 1998. Tous droits réservés.
Règles d'Exécution des Ordres
du LMD dans une Vue
• Vous...
15-15 Copyright © Oracle Corporation, 1998. Tous droits réservés.
Règles d'Exécution des Ordres
du LMD dans une Vue
• Vous...
15-16 Copyright © Oracle Corporation, 1998. Tous droits réservés.
Utilisation de la Clause WITH
CHECK OPTION
• Vous pouvez...
15-17 Copyright © Oracle Corporation, 1998. Tous droits réservés.
Refus des Ordres du LMD
• Aucune opération du LMD ne pou...
15-18 Copyright © Oracle Corporation, 1998. Tous droits réservés.
Suppression d'une Vue
• La suppression d'une vue n'entra...
15-19 Copyright © Oracle Corporation, 1998. Tous droits réservés.
Résumé
• Une vue est dérivée des données d'autres
tables...
15-20 Copyright © Oracle Corporation, 1998. Tous droits réservés.
Présentation des Exercices
• Création d'une vue simple
•...
Prochain SlideShare
Chargement dans…5
×

Création de Vues | SQL Oracle

1 285 vues

Publié le

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

Publié dans : Formation
0 commentaire
0 j’aime
Statistiques
Remarques
  • Soyez le premier à commenter

  • Soyez le premier à aimer ceci

Aucun téléchargement
Vues
Nombre de vues
1 285
Sur SlideShare
0
Issues des intégrations
0
Intégrations
76
Actions
Partages
0
Téléchargements
68
Commentaires
0
J’aime
0
Intégrations 0
Aucune incorporation

Aucune remarque pour cette diapositive
  • Objectifs Dans ce chapitre, vous allez apprendre à créer et à utiliser des vues. Vous apprendrez également à interroger l'objet approprié du dictionnaire de données pour extraire des informations relatives aux vues.
  • Qu'est-ce qu'une Vue ? Vous pouvez présenter des sous-ensembles ou des combinaisons logiques de données en créant des vues sur des tables. Une vue est une table logique basée sur une table ou une autre vue. Elle affiche des données qui ne lui sont pas propres, mais c’est comme une fenêtre par laquelle il est possible de visualiser ou de modifier des données venant des tables. Les tables sur lesquelles une vue est basée sont appelées tables de base . Une vue est stockée dans le dictionnaire de données, comme un ordre SELECT.
  • Avantages d'une Vue Limite l'accès à la base de données en affichant une sélection de celle-ci. Permet aux utilisateurs de créer des requêtes simples pour extraire les résultats de requêtes complexes. Par exemple, vous pouvez extraire des informations de plusieurs tables sans savoir écrire un ordre de jointure. Garantit l'indépendance des données pour des utilisateurs et des programmes d'application contextuels. Une vue peut être utilisée pour extraire les données de plusieurs tables. Permet à des groupes d'utilisateurs d'accéder aux données en fonction de leurs critères particuliers. Pour de plus amples informations, reportez-vous à Oracle8 Server SQL Reference, Release 8.0 , “CREATE VIEW.”
  • Vues Simples et Vues Complexes On distingue les vues simples et les vues complexes. La différence principale entre ces deux types de vues est liée aux opérations LMD (insertion, mise à jour et suppression). Une vue simple : Est dérivée des données d'une seule table Ne contient ni fonctions ni groupes de données Permet d'exécuter des opérations du LMD Une vue complexe : Est dérivée des données de plusieurs tables Contient des fonctions ou des groupes de données Ne permet pas toujours d'exécuter des opérations du LMD
  • Création d'une Vue Vous pouvez créer une vue en imbriquant une sous-interrogation dans l'ordre CREATE VIEW. Dans la syntaxe : OR REPLACE recrée la vue, si celle-ci existe déjà. FORCE crée la vue, que les tables de base existent ou non. NOFORCE ne crée la vue que s'il existe des tables de base (valeur par défaut). view nom de la vue. alias indique les noms des expressions sélectionnées par la requête de la vue. Le nombe d'alias doit être égal au nombre d'expressions sélectionnées par la vue. subquery ordre SELECT complet. Vous pouvez utiliser des alias de colonnes dans la liste SELECT. WITH CHECK OPTION n'autorise l'insertion et la mise à jour que pour les lignes auxquelles la vue peut accéder. constraint nom attribué à la contrainte CHECK OPTION. WITH READ ONLY garantit qu'aucune opération LMD ne peut être exécutée dans la vue.
  • Création d'une Vue L'exemple ci-dessus illustre la création d'une vue contenant le numéro, le nom et le poste de tous les employés du département 10. Vous pouvez afficher la structure de la vue à l'aide de la commande SQL*Plus DESCRIBE. Name Null? Type ------------------------------- -------- ------------ EMPNO NOT NULL NUMBER(4) ENAME VARCHAR2(10) JOB VARCHAR2(9) Règles de Création d'une Vue La sous-interrogation qui définit la vue peut contenir une syntaxe SELECT complexe avec des jointures, des groupes et des sous-interrogations. Cette sous-interrogation ne peut pas contenir la clause ORDER BY que vous définissez lors de l'extraction des données de la vue. Si vous ne précisez pas un nom de contrainte pour une vue créée avec la contrainte CHECK OPTION, le système attribue un nom de contrainte par défaut au format SYS_C n . L'option OR REPLACE permet de modifier la définition d'une vue sans la supprimer ni la recréer, ou de lui accorder de nouveau les privilèges objet qu'elle avait précédemment.
  • Création d'une Vue Vous pouvez contrôler les noms de colonnes en insérant des alias de colonnes dans la sous-interrogation. L'exemple ci-dessus illustre la création d'une vue avec l'alias EMPLOYEE_NUMBER représentant le numéro des employés, l'alias NAME représentant le nom des employés et l'alias SALARY représentant le salaire, pour le département 30. Vous pouvez aussi contrôler les noms de colonnes en utilisant des alias de colonnes dans la clause CREATE VIEW.
  • Extraction des Données d'une Vue Les données d'une vue s'extrayent de la même façon que les données d'une table. Vous pouvez afficher tout le contenu de la vue ou uniquement des lignes et des colonnes spécifiques.
  • Vues du Dictionnaire de Données Une fois votre vue créée, vous pouvez interroger la table USER_VIEWS du dictionnaire de données pour afficher le nom et la définition de la vue. Le texte de l'ordre SELECT qui constitue votre vue est stocké dans une colonne de type LONG. Accès aux Données par une Vue Lorsque vous accédez à des données par le biais d'une vue, Oracle8 Server : 1. Extrait la définition de la vue à partir de la table USER_VIEWS du dictionnaire de données. 2. Vérifie les privilèges d'accès de la table de base de la vue. 3. Convertit la requête de la vue en une opération équivalente dans la ou les tables de base sous-jacentes. Autrement dit, les donnés sont extraites ou mises à jour dans la ou des tables de base. Vues du Dictionnaire de Données
  • Modification d'une Vue L'option OR REPLACE permet de créer une vue, même s'il en existe déjà une du même nom. Dans ce cas, la nouvelle vue remplace l'ancienne version de la vue pour son propriétéaire. En d'autres termes, il est possible de modifier une vue sans avoir à la supprimer, la recréer ou lui accorder de nouveau les privilèges objet. Remarque : Lorsque vous attribuez des alias de colonnes dans la clause CREATE VIEW, souvenez-vous que les alias sont cités dans le même ordre que les colonnes de la sous-interrogation.
  • Création d'une Vue Complexe L'exemple ci-dessus illustre la création d'une vue complexe contenant des noms de départements, ainsi que les salaires minimum, maximum et moyens par département. A noter que des alias ont été définis pour cette vue, ce qui est obligatoire si une colonne de la vue est issue d'une fonction ou d'une expression. Vous pouvez afficher la structure de la vue à l'aide de la commande SQL*Plus DESCRIBE. Pour afficher son contenu, utilisez un ordre SELECT. SQL> SELECT * 2 FROM dept_sum_vu; NAME MINSAL MAXSAL AVGSAL -------------- --------- --------- --------- ACCOUNTING 1300 5000 2916.6667 RESEARCH 800 3000 2175 SALES 950 2850 1566.6667
  • Exécution des Ordres du LMD dans une Vue Vous pouvez exécuter des opérations LMD sur les données d'une vue, sous réserve de respecter certaines règles. Vous ne pouvez pas supprimer une ligne d'une vue si elle contient l'un des éléments suivants : Fonctions de groupe Clause GROUP BY Mot-clé DISTINCT
  • Exécution des Ordres du LMD dans une Vue Vous ne pouvez pas modifier les données d'une vue qui contient une des conditions mentionnées dans la diapositive précédente et un des éléments suivants : Colonnes définies par des expressions. Exemple : SALARY * 12 Colonne ROWNUM Pour connaître la liste des colonnes modifiables d’une vue, vous pouvez consulter dans le dictionnaire de données : USER_UPDATABLE_COLUMNS. Vous ne pouvez pas ajouter de données dans une vue si elle contient un des éléments ci-dessus et s'il existe dans la table de base des colonnes NOT NULL sans valeur par défaut qui ne sont pas sélectionnées par la vue. Toutes les valeurs obligatoires doivent figurer dans la vue. N'oubliez pas que vous ajoutez des valeurs directement dans la table sous-jacente par le biais d'une vue. Pour de plus amples informations, reportez-vous à 0racle8 Server SQL Reference, Release 8.0, “CREATE VIEW.”
  • Utilisation de la Clause WITH CHECK OPTION Il est possible d'exécuter des contrôles d'intégrité référentielle dans les vues. Vous pouvez ainsi renforcer les contraintes au niveau de la base de données. Une vue permet de protéger l'intégrité des données, mais dans un cadre très limité. La clause WITH CHECK OPTION précise que les opérations d'insertion et de mise à jour exécutées dans une vue n'autorisent pas la création de lignes que la vue ne peut pas sélectionner. Par conséquent, elle permet de renforcer les contraintes d'intégrité et les contrôles de validation sur les données à insérer ou à mettre à jour. Si vous tentez d'exécuter des opérations LMD sur des lignes que la vue n'a pas sélectionnées, un message d'erreur s'affiche avec le nom de la contrainte, si ce dernier a été précisé. SQL> UPDATE empvu20 2 SET deptno = 10 3 WHERE empno = 7788; update empvu20 * ERROR at line 1: ORA-01402: view WITH CHECK OPTION where-clause violation Remarque : Aucune ligne n'est mise à jour si le numéro du département est modifié (10), car la vue ne pourra plus afficher cet employé. Avec la clause WITH CHECK OPTION, la vue ne peut afficher que les employés du département 20 et n'autorise pas la modification du numéro de département de ces employés au travers de la vue.
  • Refus des Ordres du LMD L'option WITH READ ONLY vous permet de garantir qu'aucune opération LMD ne sera exécutée dans votre vue. Dans l'exemple ci-dessus, la vue EMPVU10 est modifiée de telle sorte que toutes les opérations LMD sont interdites dans cette vue. Toute tentative de suppression d'une ligne dans la vue génère une erreur. SQL> DELETE FROM empvu10 2 WHERE employee_number = 7782; DELETE FROM empvu10 * ERROR at line 1: ORA-01752:Cannot delete from view without exactly one key-preserved table
  • Suppression d'une Vue L'ordre DROP VIEW permet de supprimer une vue. La définition de la vue est ainsi supprimée de la base de données. La suppression d'une vue n'a aucun effet sur les tables sur lesquelles la vue est basée. En revanche, les vues ou autres applications basées sur des vues supprimées ne sont plus valides. Seul, le propriétaire ou un utilisateur ayant le privilège DROP ANY VIEW peut supprimer une vue. Dans la syntaxe : view représente le nom de la vue
  • Qu'est-ce qu'une Vue ? Une vue est basée sur une table ou une autre vue. Elle est semblable à une fenêtre par laquelle vous pouvez afficher ou modifier les données d'une table, et elle ne contient pas de données qui lui sont propres. La définition d'une vue est stockée dans le dictionnaire de données. Vous pouvez consulter la définition des vues par la table USER_VIEWS du dictionnaire de données. Avantages d'une Vue Limite l'accès à la base de données Simplifie les requêtes Indépendance des données Visualisation des mêmes données sous différentes formes La suppression d'une vue n'a aucun effet sur les données sous-jacentes Options d'une Vue Vue simple basée sur une table Vue complexe basée sur une ou plusieurs tables, ou contenant des groupes ou des fonctions Peut être remplacée s'il en existe une de même nom Peut contenir une contrainte d’intégrité Peut s'afficher en mode lecture seule
  • Présentation des Excercices Vous allez créer des vues simples et complexes, puis exécuter des ordres du LMD dans les différentes vues.
  • Exercice 15 1. Créez la vue EMP_VU à partir de la table EMP contenant des numéros et des noms d'employés avec leur numéro de département. Modifiez l'en-tête de la colonne des noms d'employés en la nommant EMPLOYEE. 2. Affichez le contenu de la vue EMP_VU. EMPNO EMPLOYEE DEPTNO ----- -------- ------ 7839 KING 10 7698 BLAKE 30 7782 CLARK 10 7566 JONES 20 7654 MARTIN 30 7499 ALLEN 30 7844 TURNER 30 7900 JAMES 30 7521 WARD 30 7902 FORD 20 7369 SMITH 20 7788 SCOTT 20 7876 ADAMS 20 7934 MILLER 10 14 rows selected. 3. Sélectionnez le nom de la vue (view_name) et le texte correspondant dans la table USER_VIEWSdu dictionnaire de données. VIEW_NAME TEXT ----------- ---------------------------------------- EMP_VU SELECT empno, ename employee, deptno FROM emp 4. A partir de votre vue EMP_VU, faites une requête pour afficher tous les noms des employés et le numéro de leur département. EMPLOYEE DEPTNO ---------- --------- KING 10 BLAKE 30 CLARK 10 JONES 20 MARTIN 30 ... 14 rows selected.
  • Exercice 15 5. Créez la vue DEPT20 avec les numéros et les noms de tous les employés du département 20. Nommez les colonnes de la vue respectivement EMPLOYEE_ID, EMPLOYEE et DEPARTMENT_ID. Cette vue ne doit pas autoriser l'affectation d'un employé à un autre département. 6. Affichez la structure et le contenu de la vue DEPT20. Name Null? Type --------------- -------- ------ EMPLOYEE_ID NOT NULL NUMBER(4) EMPLOYEE VARCHAR2(10) DEPARTMENT_ID NOT NULL NUMBER(2) EMPLOYEE_ID EMPLOYEE DEPARTMENT_ID ----------- -------- ------------- 7566 JONES 20 7902 FORD 20 7369 SMITH 20 7788 SCOTT 20 7876 ADAMS 20 7. Essayez d'affecter l'employé Smith au département 30. S'il vous reste du temps, effectuez l’exercice suivant. 8. Créez la vue SALARY_VU de façon à afficher le nom de tous les employés, le nom de leur département, leur salaire et leur barème de salaire. Nommez les colonnes respectivement Employee, Department, Salary et Grade.
  • Création de Vues | SQL Oracle

    1. 1. Copyright © Oracle Corporation, 1998. Tous droits réservés. 1515 Création de Vues www.TelechargerCours.com
    2. 2. 15-2 Copyright © Oracle Corporation, 1998. Tous droits réservés. Objectifs 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
    3. 3. 15-3 Copyright © Oracle Corporation, 1998. Tous droits réservés. Objets 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
    4. 4. 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 ? Table EMPTable EMP VueVue EMPVU10EMPVU10 EMPNO ENAME JOB ------ -------- ----------- 7839 KING PRESIDENT 7782 CLARK MANAGER 7934 MILLER CLERK www.TelechargerCours.com
    5. 5. 15-5 Copyright © Oracle Corporation, 1998. Tous droits réservés. 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 www.TelechargerCours.com
    6. 6. 15-6 Copyright © Oracle Corporation, 1998. Tous droits réservés. 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 www.TelechargerCours.com
    7. 7. 15-7 Copyright © Oracle Corporation, 1998. Tous droits réservés. Cré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. 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
    8. 8. 15-8 Copyright © Oracle Corporation, 1998. Tous droits réservés. Création d'une Vue • 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. 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
    9. 9. 15-9 Copyright © Oracle Corporation, 1998. Tous droits réservés. Cré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. 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
    10. 10. 15-10 Copyright © Oracle Corporation, 1998. Tous droits réservés. Extraction des Données d'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
    11. 11. 15-11 Copyright © Oracle Corporation, 1998. Tous droits réservés. Interrogation d’une Vue USER_VIEWSUSER_VIEWS EMPVU10EMPVU10 SELECT empno, ename, job FROM emp WHERE deptno = 10; USER_VIEWSUSER_VIEWS EMPVU10EMPVU10 SELECT empno, ename, job FROM emp WHERE deptno = 10; SQL*PlusSQL*Plus SELECT * FROM empvu10; EMP 7839 KING PRESIDENT 7782 CLARK MANAGER 7934 MILLER CLERK www.TelechargerCours.com
    12. 12. 15-12 Copyright © Oracle Corporation, 1998. Tous droits réservés. Modification 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. 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
    13. 13. 15-13 Copyright © Oracle Corporation, 1998. Tous droits réservés. Création d'une Vue Complexe Créez une vue complexe qui inclut desCréez une vue complexe qui inclut des fonctions de groupe pour afficher desfonctions 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
    14. 14. 15-14 Copyright © Oracle Corporation, 1998. Tous droits réservés. 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 www.TelechargerCours.com
    15. 15. 15-15 Copyright © Oracle Corporation, 1998. Tous droits réservés. 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
    16. 16. 15-16 Copyright © Oracle Corporation, 1998. Tous droits réservés. 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. • 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
    17. 17. 15-17 Copyright © Oracle Corporation, 1998. Tous droits réservés. Refus 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. 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. www.TelechargerCours.com
    18. 18. 15-18 Copyright © Oracle Corporation, 1998. Tous droits réservés. Suppression 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. SQL> DROP VIEW empvu10; View dropped.View dropped. DROP VIEW view;DROP VIEW view; www.TelechargerCours.com
    19. 19. 15-19 Copyright © Oracle Corporation, 1998. Tous droits réservés. 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 www.TelechargerCours.com
    20. 20. 15-20 Copyright © Oracle Corporation, 1998. Tous droits réservés. Pré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 www.TelechargerCours.com

    ×