SlideShare une entreprise Scribd logo
1  sur  20
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 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é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 ?
Table EMPTable EMP
VueVue
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 ?
• 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
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 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
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
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
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
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
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
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
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 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
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
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
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
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
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

Contenu connexe

Tendances

Correction examen-java-avancé-1
Correction examen-java-avancé-1Correction examen-java-avancé-1
Correction examen-java-avancé-1
vangogue
 
Correction Examen 2016-2017 POO .pdf
Correction Examen 2016-2017 POO .pdfCorrection Examen 2016-2017 POO .pdf
Correction Examen 2016-2017 POO .pdf
slimyaich3
 
Merise+ +exercices+mcd+-+corrigés
Merise+ +exercices+mcd+-+corrigésMerise+ +exercices+mcd+-+corrigés
Merise+ +exercices+mcd+-+corrigés
Majid CHADAD
 
Le Développement d’une Application Web
Le Développement d’une Application WebLe Développement d’une Application Web
Le Développement d’une Application Web
Malick Mbaye
 
Bac blanc base de données
Bac blanc base de donnéesBac blanc base de données
Bac blanc base de données
lycee
 
Mini projet individuel php
Mini projet individuel phpMini projet individuel php
Mini projet individuel php
Khadim Mbacké
 

Tendances (20)

Cours+sql++ +base+de+données+-+bac+informatique+(2009-2010)++elève++khmiri+zied
Cours+sql++ +base+de+données+-+bac+informatique+(2009-2010)++elève++khmiri+ziedCours+sql++ +base+de+données+-+bac+informatique+(2009-2010)++elève++khmiri+zied
Cours+sql++ +base+de+données+-+bac+informatique+(2009-2010)++elève++khmiri+zied
 
Correction examen-java-avancé-1
Correction examen-java-avancé-1Correction examen-java-avancé-1
Correction examen-java-avancé-1
 
Correction Examen 2016-2017 POO .pdf
Correction Examen 2016-2017 POO .pdfCorrection Examen 2016-2017 POO .pdf
Correction Examen 2016-2017 POO .pdf
 
Merise+ +exercices+mcd+-+corrigés
Merise+ +exercices+mcd+-+corrigésMerise+ +exercices+mcd+-+corrigés
Merise+ +exercices+mcd+-+corrigés
 
exercices base de données - sql
exercices  base de données - sql exercices  base de données - sql
exercices base de données - sql
 
Tp java ee.pptx
Tp java ee.pptxTp java ee.pptx
Tp java ee.pptx
 
Atelier1 mise en place d’odoo
Atelier1   mise en place d’odooAtelier1   mise en place d’odoo
Atelier1 mise en place d’odoo
 
Le Développement d’une Application Web
Le Développement d’une Application WebLe Développement d’une Application Web
Le Développement d’une Application Web
 
Cours Piles et files en utilisant lesl istes chainées Prof. KHALIFA MANSOURI
Cours Piles et files en utilisant lesl istes chainées Prof. KHALIFA MANSOURI Cours Piles et files en utilisant lesl istes chainées Prof. KHALIFA MANSOURI
Cours Piles et files en utilisant lesl istes chainées Prof. KHALIFA MANSOURI
 
Rapport application web (Spring BOOT,angular4) et mobile(ionc3) gestion des a...
Rapport application web (Spring BOOT,angular4) et mobile(ionc3) gestion des a...Rapport application web (Spring BOOT,angular4) et mobile(ionc3) gestion des a...
Rapport application web (Spring BOOT,angular4) et mobile(ionc3) gestion des a...
 
Plsql
PlsqlPlsql
Plsql
 
Rapport Mini Projet : élaborer un moteur de Recherche spécialisé en Education
Rapport Mini Projet : élaborer un moteur de Recherche spécialisé en EducationRapport Mini Projet : élaborer un moteur de Recherche spécialisé en Education
Rapport Mini Projet : élaborer un moteur de Recherche spécialisé en Education
 
Corrige access
Corrige accessCorrige access
Corrige access
 
Bac blanc base de données
Bac blanc base de donnéesBac blanc base de données
Bac blanc base de données
 
Programmation orientée objet : Object, classe et encapsulation
Programmation orientée objet : Object, classe et encapsulationProgrammation orientée objet : Object, classe et encapsulation
Programmation orientée objet : Object, classe et encapsulation
 
Mini projet individuel php
Mini projet individuel phpMini projet individuel php
Mini projet individuel php
 
Chapitre 3 structures séquentielles
Chapitre 3 structures séquentiellesChapitre 3 structures séquentielles
Chapitre 3 structures séquentielles
 
Tp1 - Initiation à Java-Eclipse
Tp1 - Initiation à Java-EclipseTp1 - Initiation à Java-Eclipse
Tp1 - Initiation à Java-Eclipse
 
Presentation d'un logiciel de GRH
Presentation d'un logiciel de GRHPresentation d'un logiciel de GRH
Presentation d'un logiciel de GRH
 
exercices Corrigées du merise
exercices Corrigées du  meriseexercices Corrigées du  merise
exercices Corrigées du merise
 

En vedette

Gustave flaubert madame bovary
Gustave flaubert madame bovaryGustave flaubert madame bovary
Gustave flaubert madame bovary
RickBlaine
 

En vedette (20)

Sous-Interrogations - sql oracle
Sous-Interrogations - sql oracleSous-Interrogations - sql oracle
Sous-Interrogations - sql oracle
 
Afficher des Données Issues de Plusieurs Tables : SQL Oracle
Afficher des Données Issues de Plusieurs Tables : SQL OracleAfficher des Données Issues de Plusieurs Tables : SQL Oracle
Afficher des Données Issues de Plusieurs Tables : SQL Oracle
 
SQL Oracle : Sélection et Tri des Lignes Retournées par un SELECT
SQL Oracle : Sélection et Tri des Lignes Retournées par un SELECTSQL Oracle : Sélection et Tri des Lignes Retournées par un SELECT
SQL Oracle : Sélection et Tri des Lignes Retournées par un SELECT
 
Fonctions Mono-Ligne
Fonctions Mono-LigneFonctions Mono-Ligne
Fonctions Mono-Ligne
 
Manipulation des Données , cours sql oracle
Manipulation des Données , cours sql oracleManipulation des Données , cours sql oracle
Manipulation des Données , cours sql oracle
 
Mise en Forme des Résultats avec SQL*Plus
Mise en Forme des Résultats avec SQL*PlusMise en Forme des Résultats avec SQL*Plus
Mise en Forme des Résultats avec SQL*Plus
 
Création et Gestion de Tables | SQL Oracle
Création et Gestion de Tables | SQL OracleCréation et Gestion de Tables | SQL Oracle
Création et Gestion de Tables | SQL Oracle
 
L'Ordre SELECT Élémentaire | SQL Oracle
L'Ordre SELECT Élémentaire | SQL OracleL'Ordre SELECT Élémentaire | SQL Oracle
L'Ordre SELECT Élémentaire | SQL Oracle
 
Opérateurs Ensemblistes | SQL Oracle
Opérateurs Ensemblistes | SQL OracleOpérateurs Ensemblistes | SQL Oracle
Opérateurs Ensemblistes | SQL Oracle
 
SQL Oracle | Regrouper les Données avec les Fonctions de Groupe
SQL Oracle | Regrouper les Données avec les Fonctions de GroupeSQL Oracle | Regrouper les Données avec les Fonctions de Groupe
SQL Oracle | Regrouper les Données avec les Fonctions de Groupe
 
Gustave flaubert madame bovary
Gustave flaubert madame bovaryGustave flaubert madame bovary
Gustave flaubert madame bovary
 
Test
TestTest
Test
 
SunTseu, evenement SalesCloud chez Oracle, Automatisez vos Ventes grâce au CRM
SunTseu, evenement SalesCloud chez Oracle, Automatisez vos Ventes grâce au CRMSunTseu, evenement SalesCloud chez Oracle, Automatisez vos Ventes grâce au CRM
SunTseu, evenement SalesCloud chez Oracle, Automatisez vos Ventes grâce au CRM
 
La morale selon Kant (cours philosophie 2010 jourde)
La morale selon Kant (cours philosophie 2010 jourde)La morale selon Kant (cours philosophie 2010 jourde)
La morale selon Kant (cours philosophie 2010 jourde)
 
Coder propre !
Coder propre !Coder propre !
Coder propre !
 
Administration oracle7
Administration oracle7Administration oracle7
Administration oracle7
 
Teams that finish early : Allez vers des équipes agiles plus performantes
Teams that finish  early : Allez vers des équipes agiles plus performantesTeams that finish  early : Allez vers des équipes agiles plus performantes
Teams that finish early : Allez vers des équipes agiles plus performantes
 
Sous-Interrogations Multi-colonne | SQL Oracle
Sous-Interrogations Multi-colonne | SQL OracleSous-Interrogations Multi-colonne | SQL Oracle
Sous-Interrogations Multi-colonne | SQL Oracle
 
Extraction Hiérarchique | Cours sql oracle
Extraction Hiérarchique | Cours sql oracleExtraction Hiérarchique | Cours sql oracle
Extraction Hiérarchique | Cours sql oracle
 
Écriture de Sous-Interrogations Synchronisées | SQL Oracle
Écriture de Sous-Interrogations Synchronisées | SQL OracleÉcriture de Sous-Interrogations Synchronisées | SQL Oracle
Écriture de Sous-Interrogations Synchronisées | SQL Oracle
 

Similaire à Création de Vues | SQL Oracle

01 l'ordre select élémentaire
01 l'ordre select élémentaire 01 l'ordre select élémentaire
01 l'ordre select élémentaire
ENSAM Casablanca
 
1 sp2g formation-implementer-ibm-smartcloud-entry-sur-power-systems
1 sp2g formation-implementer-ibm-smartcloud-entry-sur-power-systems1 sp2g formation-implementer-ibm-smartcloud-entry-sur-power-systems
1 sp2g formation-implementer-ibm-smartcloud-entry-sur-power-systems
CERTyou Formation
 
downloadfile-101.pptx réseau local installation
downloadfile-101.pptx réseau local installationdownloadfile-101.pptx réseau local installation
downloadfile-101.pptx réseau local installation
BensadiSamir
 
T1 corrections-qcm
T1 corrections-qcmT1 corrections-qcm
T1 corrections-qcm
infcom
 

Similaire à Création de Vues | SQL Oracle (20)

Les03.ppt
Les03.pptLes03.ppt
Les03.ppt
 
Principes Relationnels et Concepts Oracle
Principes Relationnelset Concepts OraclePrincipes Relationnelset Concepts Oracle
Principes Relationnels et Concepts Oracle
 
1425583156389.pptx
1425583156389.pptx1425583156389.pptx
1425583156389.pptx
 
12 fr
12 fr12 fr
12 fr
 
Java Database Connectivity
Java Database ConnectivityJava Database Connectivity
Java Database Connectivity
 
01 l'ordre select élémentaire
01 l'ordre select élémentaire 01 l'ordre select élémentaire
01 l'ordre select élémentaire
 
Pl/sql - interaction avec la base de données & structures de contrôle
Pl/sql  - interaction avec la base de données & structures de contrôlePl/sql  - interaction avec la base de données & structures de contrôle
Pl/sql - interaction avec la base de données & structures de contrôle
 
1-pl-sql 2021 2022.pdf
1-pl-sql 2021 2022.pdf1-pl-sql 2021 2022.pdf
1-pl-sql 2021 2022.pdf
 
SQL-ORACLE.pdf
SQL-ORACLE.pdfSQL-ORACLE.pdf
SQL-ORACLE.pdf
 
SQL-ORACLE.pptx
SQL-ORACLE.pptxSQL-ORACLE.pptx
SQL-ORACLE.pptx
 
oracle : le PL-SQL
oracle : le PL-SQLoracle : le PL-SQL
oracle : le PL-SQL
 
cours Plsql _ abdelkhalek benhoumine
cours Plsql _ abdelkhalek benhouminecours Plsql _ abdelkhalek benhoumine
cours Plsql _ abdelkhalek benhoumine
 
Bases de données réparties par la pratique
Bases de données réparties par la pratiqueBases de données réparties par la pratique
Bases de données réparties par la pratique
 
1 sp2g formation-implementer-ibm-smartcloud-entry-sur-power-systems
1 sp2g formation-implementer-ibm-smartcloud-entry-sur-power-systems1 sp2g formation-implementer-ibm-smartcloud-entry-sur-power-systems
1 sp2g formation-implementer-ibm-smartcloud-entry-sur-power-systems
 
Plsql2
Plsql2Plsql2
Plsql2
 
downloadfile-101.pptx réseau local installation
downloadfile-101.pptx réseau local installationdownloadfile-101.pptx réseau local installation
downloadfile-101.pptx réseau local installation
 
nstance.pptx
nstance.pptxnstance.pptx
nstance.pptx
 
Projet base de donnée
Projet base de donnée Projet base de donnée
Projet base de donnée
 
T1 corrections-qcm
T1 corrections-qcmT1 corrections-qcm
T1 corrections-qcm
 
Introduction à Angular JS
Introduction à Angular JSIntroduction à Angular JS
Introduction à Angular JS
 

Plus de webreaker

Plus de webreaker (7)

Telecharger Exercices corrigés sqlplus
Telecharger Exercices corrigés sqlplusTelecharger Exercices corrigés sqlplus
Telecharger Exercices corrigés sqlplus
 
Examne sybase corrige
Examne sybase corrigeExamne sybase corrige
Examne sybase corrige
 
Introduction aux techniques de déduplication
Introduction aux techniques de déduplicationIntroduction aux techniques de déduplication
Introduction aux techniques de déduplication
 
Telecharger Cours java pour debutant pdf
Telecharger Cours java pour debutant pdfTelecharger Cours java pour debutant pdf
Telecharger Cours java pour debutant pdf
 
Principes de fonctionnement unix
Principes de fonctionnement unixPrincipes de fonctionnement unix
Principes de fonctionnement unix
 
Administration systeme UNIX
Administration systeme UNIXAdministration systeme UNIX
Administration systeme UNIX
 
Telecharger Cours Systèmes d’exploitation windows: Administration Windows
Telecharger Cours Systèmes d’exploitation windows: Administration  WindowsTelecharger Cours Systèmes d’exploitation windows: Administration  Windows
Telecharger Cours Systèmes d’exploitation windows: Administration Windows
 

Dernier

Copie de Engineering Software Marketing Plan by Slidesgo.pptx.pptx
Copie de Engineering Software Marketing Plan by Slidesgo.pptx.pptxCopie de Engineering Software Marketing Plan by Slidesgo.pptx.pptx
Copie de Engineering Software Marketing Plan by Slidesgo.pptx.pptx
ikospam0
 

Dernier (12)

Echos libraries Burkina Faso newsletter 2024
Echos libraries Burkina Faso newsletter 2024Echos libraries Burkina Faso newsletter 2024
Echos libraries Burkina Faso newsletter 2024
 
L'expression du but : fiche et exercices niveau C1 FLE
L'expression du but : fiche et exercices  niveau C1 FLEL'expression du but : fiche et exercices  niveau C1 FLE
L'expression du but : fiche et exercices niveau C1 FLE
 
Cours Généralités sur les systèmes informatiques
Cours Généralités sur les systèmes informatiquesCours Généralités sur les systèmes informatiques
Cours Généralités sur les systèmes informatiques
 
CompLit - Journal of European Literature, Arts and Society - n. 7 - Table of ...
CompLit - Journal of European Literature, Arts and Society - n. 7 - Table of ...CompLit - Journal of European Literature, Arts and Society - n. 7 - Table of ...
CompLit - Journal of European Literature, Arts and Society - n. 7 - Table of ...
 
Copie de Engineering Software Marketing Plan by Slidesgo.pptx.pptx
Copie de Engineering Software Marketing Plan by Slidesgo.pptx.pptxCopie de Engineering Software Marketing Plan by Slidesgo.pptx.pptx
Copie de Engineering Software Marketing Plan by Slidesgo.pptx.pptx
 
Saint Damien, missionnaire auprès des lépreux de Molokai, Hawaï.pptx
Saint Damien, missionnaire auprès des lépreux de Molokai, Hawaï.pptxSaint Damien, missionnaire auprès des lépreux de Molokai, Hawaï.pptx
Saint Damien, missionnaire auprès des lépreux de Molokai, Hawaï.pptx
 
Intégration des TICE dans l'enseignement de la Physique-Chimie.pptx
Intégration des TICE dans l'enseignement de la Physique-Chimie.pptxIntégration des TICE dans l'enseignement de la Physique-Chimie.pptx
Intégration des TICE dans l'enseignement de la Physique-Chimie.pptx
 
Neuvaine de la Pentecôte avec des textes de saint Jean Eudes
Neuvaine de la Pentecôte avec des textes de saint Jean EudesNeuvaine de la Pentecôte avec des textes de saint Jean Eudes
Neuvaine de la Pentecôte avec des textes de saint Jean Eudes
 
Télécommunication et transport .pdfcours
Télécommunication et transport .pdfcoursTélécommunication et transport .pdfcours
Télécommunication et transport .pdfcours
 
RAPPORT DE STAGE D'INTERIM DE ATTIJARIWAFA BANK
RAPPORT DE STAGE D'INTERIM DE ATTIJARIWAFA BANKRAPPORT DE STAGE D'INTERIM DE ATTIJARIWAFA BANK
RAPPORT DE STAGE D'INTERIM DE ATTIJARIWAFA BANK
 
python-Cours Officiel POO Python-m103.pdf
python-Cours Officiel POO Python-m103.pdfpython-Cours Officiel POO Python-m103.pdf
python-Cours Officiel POO Python-m103.pdf
 
Formation échiquéenne jwhyCHESS, parallèle avec la planification de projet
Formation échiquéenne jwhyCHESS, parallèle avec la planification de projetFormation échiquéenne jwhyCHESS, parallèle avec la planification de projet
Formation échiquéenne jwhyCHESS, parallèle avec la planification de projet
 

Création de Vues | SQL Oracle

  • 1. Copyright © Oracle Corporation, 1998. Tous droits réservés. 1515 Création de Vues www.TelechargerCours.com
  • 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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 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. 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. 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. 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. 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. 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

Notes de l'éditeur

  1. 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.
  2. 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.
  3. 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.”
  4. 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
  5. 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.
  6. 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.
  7. 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.
  8. 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.
  9. 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
  10. 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.
  11. 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
  12. 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
  13. 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.”
  14. 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.
  15. 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
  16. 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
  17. 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
  18. 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.
  19. 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.
  20. 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.