Oracle
 sql >> Database >  >> RDS >> Oracle

Come creare una vista in Oracle

In questo post, parlerei delle viste Oracle che sono utilizzate abbastanza pesantemente in varie applicazioni per motivi di sicurezza e complessità. Elencherei il ciclo di vita completo della vista Oracle, ad esempio Come creare una vista in Oracle, Oracle crea un esempio di vista, come altera la visualizzazione in Oracle, Come compilare la visualizzazione in Oracle, Come eliminare la visualizzazione in Oracle, Forza la visualizzazione in Oracle, Come controllare la definizione della visualizzazione in Oracle. Scoprirai perché Oracle View è importante e cosa si può fare con esso .

Questa stessa roba è quasi valida anche per la vista sql

Cos'è Oracle View?

-Una vista Oracle è una rappresentazione di dati da una o più tabelle o viste Oracle.

-Una vista Oracle è una query SQL denominata e convalidata che viene archiviata nel dizionario dei dati Oracle.

Le visualizzazioni non contengono dati:è solo una query archiviata nel database che può essere eseguita quando viene chiamata. Tutti i dati che mostra provengono dalle tabelle di base. Si può pensare a una vista come a una tabella virtuale o a una mappatura di dati da uno o più

-Una vista non occupa spazio di archiviazione se non per la definizione della vista nel dizionario dei dati.

  • Una vista può essere usata per rappresentare un sottoinsieme di dati (per problemi di sicurezza), usata per rappresentare un superinsieme di dati (unire più tabelle in una vista), per nascondere join complessi, per fornire nomi significativi per le colonne e per ridurre al minimo le modifiche all'applicazione e all'origine dati.

-Le tabelle di riferimento sono chiamate tabelle di base .

  • Per creare una vista usa il comando CREATE VIEW seguito da una query SQL.

Esempio di creazione di visualizzazione Oracle

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

-Puoi specificare i nomi delle colonne usando

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

-La creazione di una vista utilizzando CREATE FORCE VIEW creerà la vista con errori di compilazione.

-Puoi creare una vista di sola lettura usando la clausola WITH READ ONLY.

-Oracle 9i consente di creare vincoli sulle viste.

-I vincoli sulle viste non vengono applicati, sono vincoli dichiarativi. Per applicare i vincoli è necessario creare i vincoli nelle tabelle di base. Devi sempre includere la clausola DISABLE NOVALIDATE quando crei vincoli sulle viste.

Privilegi richiesti per creare la vista Oracle

Per creare una vista nel tuo schema, devi disporre del privilegio di sistema CREATE VIEW. Per creare una vista nello schema di un altro utente, devi disporre del privilegio di sistema CREATE ANY VIEW.

Esempio di creazione di Oracle Views

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

Come modificare la vista Oracle/come modificare la vista in Oracle

Possiamo modificare le viste usando il comando crea o sostituisci vista. Ciò consente di modificare la visualizzazione senza eliminare, ricreare e concedere nuovamente i privilegi degli oggetti. Non esiste un comando come altera vista aggiungi una colonna o altera vista modifica la colonna. Dobbiamo passare attraverso il metodo di creazione o sostituzione di visualizzazione

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

Questo comando crea la vista se non esiste e modifica la vista se esiste. Tutte le unità plsql che stanno accedendo alla vista diventeranno non valide dopo la modifica della vista

Come compilare la vista in Oracle

La ricompilazione di una vista viene eseguita utilizzando

ALTER VIEW COMPILA;

Alter view  emp_high_sal  compile;

Come eliminare la visualizzazione in Oracle

L'eliminazione di una vista viene eseguita utilizzando il comando DROP VIEW.

L'eliminazione di una vista non ha effetto sulle tabelle di base su cui si basa la vista. Gli utenti che stavano accedendo ai dati delle tabelle di base utilizzando la visualizzazione non potranno più accedere ai dati delle tabelle di base.

DROP VIEW view_name;

Drop view  emp_high_sal  ;

Creazione di Force Oracle Views/force view in Oracle

È possibile creare una vista anche se non è possibile eseguire la query di definizione della vista, utilizzando il comando CREATE FORCE VIEW. Tale visualizzazione è denominata visualizzazione con errori . Questa opzione può essere utile per gli strumenti di importazione/installazione per creare una vista prima che siano presenti gli oggetti sottostanti.

Facciamo un esempio per capirlo. Non abbiamo una tabella come TEST. Ma possiamo ancora creare la vista su di essa prima di creare la tabella usando l'opzione force. La vista verrà creata con un errore di compilazione e rimarrà non valida

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

Ora crea la tabella

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

Ora puoi compilare la vista e diventerà valida

alter view TEST_V compile;

Cosa succede alla vista se le tabelle di base vengono eliminate?

Se le tabelle sottostanti vengono eliminate, Oracle non elimina automaticamente la vista. Rimane nel database e sarà in uno stato non valido. Se le tabelle sottostanti vengono ricreate, diventeranno nuovamente valide

Viste del dizionario per visualizzare i dati di Oracle View

I dettagli della visualizzazione possono essere interrogati dal dizionario eseguendo una query su USER_VIEWS, ALL_VIEWS o DBA_VIEWS. Le viste sono utili per la sicurezza e per nascondere le informazioni, ma possono causare problemi se nidificate troppo in profondità. Alcuni dei vantaggi dell'utilizzo delle viste:

  • Ridurre la complessità delle istruzioni SQL
  • Condividi solo righe specifiche in una tabella con altri utenti
  • Nascondi il NOME e il PROPRIETARIO del tavolo base
  • Esistono tre categorie di viste
USER_% Questa vista contiene informazioni solo sugli oggetti di proprietà dell'utente Ad esempio
USER_TABLES,USER_TAB_COLS
TUTTO-% Questa vista contiene informazioni sugli oggetti a cui l'utente può accedere nel database.
Esempio
ALL_TABLES,ALL_TAB_COLS
DBA_% Questa vista contiene informazioni su tutti gli oggetti  nel sistema e si tratta di viste limitate accessibili all'utente che ha un ruolo DBA
Esempio
DBA_TABLES
  DBA_% visualizzazioni sulle informazioni di visualizzazione ALL_% di visualizzazioni su  visualizza informazioni USER_% visualizzazioni sulle informazioni di visualizzazione
La colonna che può essere aggiornata DBA_UPDATABLE_COLUMNS ALL_UPDATABLE_COLUMNS USER_UPDATABLE_COLUMNS
Visualizza informazioni sulla visualizzazione dba_views tutte_visite viste_utente

Elencare tutte le viste in 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>

Come controllare la definizione della vista in Oracle

Interroga la colonna TEXT della tabella 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>';

Come estrarre la definizione della vista (istruzioni DDL) da un database Oracle senza dover passare attraverso una pila di viste del dizionario

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

Spero che ti piaccia un articolo dettagliato sulla vista Oracle. Ho provato a rispondere alle domande più frequenti sulla vista come Come creare una vista in Oracle, Oracle crea un esempio di vista, come modificare la vista in Oracle, Come compilare la vista in Oracle, Come eliminare la vista in Oracle, forzare la vista in Oracle , Come controllare la definizione della vista in Oracle

Articoli correlati da leggere
oracle create a table:le tabelle sono l'unità di base dell'archiviazione dei dati in un database Oracle. descriviamo come utilizzare il comando Oracle create table per creare una tabella con una chiave esterna/chiave primaria
tabelle esterne in Oracle:dai un'occhiata a questo post per informazioni sull'utilizzo della tabella esterna in Oracle con un esempio, come creare una tabella esterna, come usarla
Sequenze in Oracle:Cos'è la sequenza in Oracle, Descrizione di tutte le opzioni, Come crearle, Oracle 12c nuova funzionalità delle sequenze, Come rilasciarle e modificarle
Indici in Oracle:controlla le informazioni sugli indici Oracle, diversi tipi di indici in Oracle con un esempio, come creare/rilasciare/alterare l'indice in Oracle
Oracle Materialized Views:cos'è Oracle Materialized View, Oracle Materialized View Log, Aggiorna gruppo, Differenza tra visualizzazione e visualizzazione materializzata
Come monitorare l'avanzamento dell'aggiornamento delle visualizzazioni materializzate
oracle alter table modifica il tipo di colonna:dai un'occhiata a questo post su come modificare le colonne in Oracle utilizzando la Oracle alter table modificare la colonna. La colonna di modifica può cambiare il valore predefinito, consentendo non null
aggiornare la vista in Oracle:controlla questo post per aggiornare la vista in Oracle, inserisci nella vista oracle, elimina dalla vista nel database Oracle

Corsi consigliati

Ecco il bel corso Udemy per Oracle SQL
Oracle-Sql-Step-by-step:questo corso copre SQL di base, join, creazione di tabelle e modifica della sua struttura, creazione di viste, unione, unione, tutto e molto altro . Un ottimo corso e un corso indispensabile per principianti SQL
Il corso completo di certificazione Oracle SQL :Questo è un buon corso per chiunque voglia essere pronto per il lavoro per le competenze di sviluppatore SQL. Un bel corso spiegato
Oracle SQL Developer:Essentials, Tips and Tricks :lo strumento di sviluppo Oracle Sql è utilizzato da molti sviluppatori. Questo corso offre trucchi e lezioni su come utilizzarlo in modo efficace e diventare uno sviluppatore sql produttivo
Oracle SQL Performance Tuning Masterclass 2020 :l'ottimizzazione delle prestazioni è una delle abilità critiche e più ricercate. Questo è un buon corso per conoscerlo e iniziare a ottimizzare le prestazioni di sql