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
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