Oracle
 sql >> Base de données >  >> RDS >> Oracle

Comment créer une vue dans Oracle

Dans cet article, je parlerais des vues Oracle qui sont largement utilisées dans diverses applications pour des raisons de sécurité et de complexité. modifier la vue dans oracle, comment compiler la vue dans oracle, comment supprimer la vue dans oracle, forcer la vue dans oracle, comment vérifier la définition de la vue dans oracle. Vous saurez pourquoi Oracle View est important et tout ce qui peut être fait avec .

Ce même truc est presque valable pour la vue sql aussi

Qu'est-ce que la vue Oracle ?

-Une vue Oracle est une représentation des données d'une ou plusieurs tables ou vues Oracle.

-Une vue Oracle est une requête SQL nommée et validée qui est stockée dans le dictionnaire de données Oracle.

Les vues ne contiennent aucune donnée :il s'agit simplement d'une requête stockée dans la base de données qui peut être exécutée lorsqu'elle est appelée. Toutes les données affichées proviennent des tables de base. On peut considérer une vue comme une table virtuelle ou un mappage de données d'un ou plusieurs

- Une vue n'occupe aucun espace de stockage autre que la définition de la vue dans le dictionnaire de données.

  • Une vue peut être utilisée pour représenter un sous-ensemble de données (pour des raisons de sécurité), utilisée pour représenter un sur-ensemble de données (joindre plusieurs tables à une seule vue), pour masquer des jointures complexes, pour fournir des noms significatifs pour les colonnes et pour minimiser les modifications apportées aux applications et aux sources de données.

-Les tables référencées sont appelées tables de base .

  • Pour créer une vue, utilisez la commande CREATE VIEW suivie d'une requête SQL.

Oracle crée un exemple de vue

CREATE VIEW view_name AS
SELECT columns
FROM tables
[WHERE conditions];

-Vous pouvez spécifier les noms de colonne en utilisant

 CREATE VIEW (col1, col2…) AS SELECT COL1, COL2… FROM …;

-La création d'une vue à l'aide de CREATE FORCE VIEW créera la vue avec des erreurs de compilation.

-Vous pouvez créer une vue en lecture seule à l'aide de la clause WITH READ ONLY.

-Oracle 9i permet de créer des contraintes sur les vues.

-Les contraintes sur les vues ne sont pas appliquées, ce sont des contraintes déclaratives. Pour appliquer des contraintes, vous devez créer les contraintes sur les tables de base. Vous devez toujours inclure la clause DISABLE NOVALIDATE lors de la création de contraintes sur les vues.

Privilèges requis pour créer une vue Oracle

Pour créer une vue dans votre propre schéma, vous devez disposer du privilège système CREATE VIEW. Pour créer une vue dans le schéma d'un autre utilisateur, vous devez disposer du privilège système CREATE ANY VIEW.

Exemple de création de vues Oracle

View Creation
Create view emp_data  as select e.empno,e.ename,e.sal,e.deptno,d.dname
From emp e, dept d
where e.deptno=d.deptno;

Create view emp_high_sal  as select empno,ename,sal
From emp  where sal > 100000;
Describe the views
Desc Emp_data
Desc emp_high_sal
Select the data from view
Select * from emp_data;
select * from emp_high_sal

Comment modifier la vue Oracle/comment modifier la vue dans Oracle

Nous pouvons modifier les vues à l'aide de la commande créer ou remplacer la vue. Cela permet de modifier la vue sans supprimer, recréer et accorder à nouveau des privilèges d'objet. Il n'existe pas de commande telle que alter view add a column ou alter view modifie la colonne. Nous devons passer par la méthode de création ou de remplacement de la vue

Create or replace view emp_high_sal  as select empno,ename,sal
From emp  where sal > 200000;

Cette commande crée la vue si elle n'existe pas et modifie la vue si elle existe. Toutes les unités plsql qui accèdent à la vue deviendront invalides après la modification de la vue

Comment compiler une vue dans Oracle

La recompilation d'une vue se fait à l'aide de

ALTER VIEW COMPILE ;

Alter view  emp_high_sal  compile;

Comment supprimer une vue dans Oracle

La suppression d'une vue s'effectue à l'aide de la commande DROP VIEW.

La suppression d'une vue n'a aucun effet sur les tables de base sur lesquelles la vue est basée. Les utilisateurs qui accédaient aux données des tables de base à l'aide de la vue ne pourront plus accéder aux données des tables de base.

DROP VIEW nom_vue ;

Drop view  emp_high_sal  ;

Création de Force Oracle Views/force view dans Oracle

Une vue peut être créée même si la requête de définition de la vue ne peut pas être exécutée, à l'aide de la commande CREATE FORCE VIEW. Une telle vue est appelée une vue avec des erreurs . Cette option peut être utile pour les outils d'importation/installation afin de créer une vue avant que les objets sous-jacents ne soient présents.

Prenons un exemple pour le comprendre. Nous n'avons pas de table comme TEST. Mais nous pouvons toujours créer la vue dessus avant de créer la table en utilisant l'option force. La vue sera créée avec une erreur de compilation et restera invalide

Create  force view TEST_V  as select col1,col2,col3 From test where col1 > 1000;

Créez maintenant le tableau

create table TEST ( col1 number, col2 number, col3 number);

Vous pouvez maintenant compiler la vue et elle deviendra valide

alter view TEST_V compile;

Qu'advient-il de la vue si les tables de base sont supprimées ?

Si les tables sous-jacentes sont supprimées, Oracle ne supprime pas automatiquement la vue. Il reste dans la base de données et sera dans un état invalide. Si les tables sous-jacentes sont recréées, elles redeviendront valides

Vues de dictionnaire pour voir les données d'Oracle View

Les détails de la vue peuvent être interrogés à partir du dictionnaire en interrogeant USER_VIEWS, ALL_VIEWS ou DBA_VIEWS. Les vues sont utiles pour la sécurité et le masquage des informations, mais peuvent causer des problèmes si elles sont imbriquées trop profondément. Certains des avantages de l'utilisation des vues :

  • Réduire la complexité des instructions SQL
  • Partager uniquement des lignes spécifiques d'un tableau avec d'autres utilisateurs
  • Masquer le NOM et le PROPRIÉTAIRE de la table de base
  • Il existe trois catégories de vues
USER_% Cette vue contient des informations sur les objets appartenant à l'utilisateur uniquement Par exemple
USER_TABLES,USER_TAB_COLS
ALL-% Cette vue contient des informations sur les objets auxquels l'utilisateur peut accéder dans la base de données.
Exemple
ALL_TABLES,ALL_TAB_COLS
DBA_% Cette vue contient des informations sur tous les objets du système. Il s'agit de vues restreintes accessibles à l'utilisateur disposant d'un rôle DBA.
Exemple
DBA_TABLES
  DBA_ % de vues sur les informations de vue TOUTES_ % vues sur  afficher des informations USER_ % de vues sur les informations de vue
La colonne qui peut être mise à jour DBA_UPDATABLE_COLUMNS ALL_UPDATABLE_COLUMNS USER_UPDATABLE_COLUMNS
Afficher à propos d'afficher les informations dba_views toutes_vues user_views

Liste de toutes les vues dans Oracle

To list all views owned by the current user
select  view_name from user_views;

To list all views in a database:

Select  owner,view_name from dba_views;

To list views accessible to the current user:

select view_name from all_views;

To describe the view in sqlplus
desc <view_name>

Comment vérifier la définition de la vue dans Oracle

Interrogez la colonne TEXT de la table DBA_VIEWS.

Syntax:
SQL> set long 10000

SQL> select TEXT
2  FROM DBA_VIEWS
3  where OWNER = '<owner_name>'
4  and VIEW_NAME  = '<view_name>';

Comment extraire la définition de vue (instructions DDL) d'une base de données Oracle sans avoir à parcourir une pile de vues de dictionnaire

Syntax:
SQL> set long 1000
SQL> set pagesize 0
SQL>select DBMS_METADATA.GET_DDL('VIEW','<view_name>') from DUAL

J'espère que vous aimez un article détaillé sur la vue Oracle. J'ai essayé de répondre aux requêtes populaires sur la vue telles que Comment créer une vue dans oracle, Oracle créer un exemple de vue, comment modifier la vue dans oracle, Comment compiler la vue dans oracle, Comment supprimer la vue dans oracle, forcer la vue dans oracle , Comment vérifier la définition de la vue dans Oracle

Articles connexes à lire
oracle créer une table :les tables sont l'unité de base de stockage de données dans une base de données Oracle. nous expliquons comment utiliser la commande Oracle create table pour créer une table avec une clé étrangère/clé primaire
tables externes dans Oracle :consultez cet article pour plus d'informations sur l'utilisation de la table externe dans oracle avec un exemple, comment créer une table externe, comment l'utiliser
Séquences dans oracle :qu'est-ce qu'une séquence dans oracle, description de toutes les options, comment les créer, nouvelle fonctionnalité de séquences Oracle 12c, comment les supprimer et les modifier
Index dans Oracle :consultez les informations sur les index Oracle, les différents types d'index dans Oracle avec un exemple, comment créer/supprimer/modifier l'index dans Oracle
Oracle Materialized Views :qu'est-ce que la vue matérialisée Oracle, journal des vues matérialisées Oracle, Groupe d'actualisation, Différence entre la vue et la vue matérialisée
Comment surveiller la progression de l'actualisation des vues matérialisées
oracle alter table modify column type :Consultez cet article sur la façon de modifier les colonnes dans oracle à l'aide d'oracle alter table modifier la colonne. Modifier la colonne peut changer la valeur par défaut, n'autorisant pas null
mettre à jour la vue dans Oracle :consultez cet article pour mettre à jour la vue dans Oracle, insérer dans la vue oracle, supprimer de la vue dans la base de données Oracle

Cours recommandés

Voici le joli cours Udemy pour Oracle SQL
Oracle-Sql-Step-by-step :Ce cours couvre les bases de SQL, les jointures, la création de tables et la modification de sa structure, la création de vues, l'union, l'union -all et bien d'autres choses . Un excellent cours et un cours indispensable pour les débutants SQL
Le cours complet de certification Oracle SQL  :c'est un bon cours pour tous ceux qui veulent être prêts à travailler pour les compétences de développeur SQL. Un cours bien expliqué
Oracle SQL Developer :Essentials, Tips and Tricks  :l'outil de développement Oracle SQL est utilisé par de nombreux développeurs. Ce cours nous donne des astuces et des leçons sur la façon de l'utiliser efficacement et de devenir un développeur sql productif
Oracle SQL Performance Tuning Masterclass 2020  :l'optimisation des performances est l'une des compétences essentielles et les plus recherchées. C'est un bon cours pour en savoir plus et commencer à ajuster les performances SQL