In dit bericht zou ik het hebben over Oracle-weergaven die om veiligheids- en complexiteitsredenen behoorlijk zwaar worden gebruikt in verschillende toepassingen. verander de weergave in orakel, hoe de weergave in orakel te compileren, hoe de weergave in orakel te laten vallen, de weergave in orakel te forceren, hoe de weergavedefinitie in orakel te controleren. U zult te weten komen waarom Oracle View belangrijk is en wat er allemaal mee kan worden gedaan .
Dezelfde dingen zijn bijna ook geldig voor sql-weergave
Wat is Oracle-weergave?
-Een Oracle-weergave is een weergave van gegevens uit een of meer Oracle-tabellen of -weergaven.
-Een Oracle-weergave is een benoemde en gevalideerde SQL-query die is opgeslagen in het Oracle-datawoordenboek.
– Weergaven bevatten geen gegevens - het is slechts een opgeslagen query in de database die kan worden uitgevoerd wanneer deze wordt aangeroepen. Alle gegevens die worden weergegeven, zijn afkomstig uit de basistabellen. Je kunt een weergave zien als een virtuele tabel of het in kaart brengen van gegevens van een of meer
-Een weergave neemt geen opslagruimte in beslag, behalve voor de definitie van de weergave in de datadictionary.
- Een weergave kan worden gebruikt om een subset van gegevens weer te geven (voor beveiligingsproblemen), om een superset van gegevens weer te geven (meerdere tabellen samenvoegen tot één weergave), om complexe joins te verbergen, om betekenisvolle namen voor kolommen te geven en om minimaliseer wijzigingen in applicaties en gegevensbronnen.
-De tabellen waarnaar wordt verwezen heten basistabellen .
- Gebruik de opdracht CREATE VIEW gevolgd door een SQL-query om een weergave te maken.
Voorbeeld van Oracle-weergave
CREATE VIEW view_name AS SELECT columns FROM tables [WHERE conditions];
-U kunt de kolomnamen specificeren met
CREATE VIEW (col1, col2…) AS SELECT COL1, COL2… FROM …;
-Als u een weergave maakt met CREATE FORCE VIEW, wordt de weergave met compilatiefouten gemaakt.
-U kunt een alleen-lezen weergave maken met behulp van de clausule WITH READ ONLY.
-Oracle 9i maakt het mogelijk beperkingen op weergaven te creëren.
-Restricties op views worden niet afgedwongen, het zijn declaratieve restricties. Om beperkingen af te dwingen, moet u de beperkingen op de basistabellen maken. U moet altijd de DISABLE NOVALIDATE-component opnemen bij het maken van beperkingen voor weergaven.
Rechten vereist om orakelweergave te maken
Om een weergave in uw eigen schema te maken, moet u het systeemrecht CREATE VIEW hebben. Om een weergave in het schema van een andere gebruiker te maken, moet u het systeemrecht CREATE ANY VIEW hebben.
Voorbeeld van het maken van 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
Hoe de Oracle-weergave te wijzigen/hoe de weergave in oracle te wijzigen
We kunnen de weergaven wijzigen met behulp van de opdracht Create or Replace. Dit maakt het mogelijk om de weergave te wijzigen zonder objectprivileges te laten vallen, opnieuw te maken en opnieuw toe te kennen. Er is niet zo'n opdracht als weergave wijzigen een kolom toevoegen of weergave wijzigen de kolom wijzigen. We moeten de methode voor het maken of vervangen van de weergave doorlopen
Create or replace view emp_high_sal as select empno,ename,sal From emp where sal > 200000;
Met deze opdracht wordt de weergave gemaakt als deze niet bestaat en wordt de weergave gewijzigd als deze wel bestaat. Alle plsql-eenheden die toegang hebben tot de weergave worden ongeldig na de wijziging van de weergave
Hoe een weergave in oracle te compileren
Het opnieuw compileren van een weergave gebeurt met de
ALTER VIEW
Alter view emp_high_sal compile;
Hoe de weergave in orakel te laten vallen
Het neerzetten van een weergave wordt gedaan met behulp van de opdracht DROP VIEW.
Het neerzetten van een weergave heeft geen effect op de basistabellen waarop de weergave is gebaseerd. Gebruikers die toegang hadden tot de gegevens van de basistabellen met behulp van view, hebben geen toegang meer tot de gegevens van de basistabellen.
DROP VIEW view_name;
Drop view emp_high_sal ;
Force Oracle-weergaven/force-weergave in Oracle maken
Een weergave kan worden gemaakt, zelfs als de definiërende query van de weergave niet kan worden uitgevoerd, met behulp van de opdracht CREATE FORCE VIEW. Zo'n weergave wordt een weergave met fouten . genoemd . Deze optie kan handig zijn voor import-/installatietools om een weergave te maken voordat de onderliggende objecten aanwezig zijn.
Laten we een voorbeeld nemen om het te begrijpen. We hebben geen tabel zoals TEST. Maar we kunnen nog steeds de weergave ervan maken voordat we de tabel maken met behulp van de force-optie. De weergave wordt gemaakt met een compilatiefout en blijft ongeldig
Create force view TEST_V as select col1,col2,col3 From test where col1 > 1000;
Maak nu de tabel
create table TEST ( col1 number, col2 number, col3 number);
Nu kunt u de weergave compileren en deze wordt geldig
alter view TEST_V compile;
Wat gebeurt er met de weergave als de basistabellen worden verwijderd?
Als de onderliggende tabellen worden verwijderd, laat Oracle de weergave niet automatisch vallen. Het blijft in de database en heeft een ongeldige status. Als de onderliggende tabellen opnieuw worden gemaakt, worden ze weer geldig
Woordenboekweergaven voor het bekijken van de Oracle View-gegevens
Bekijk details kunnen worden opgevraagd vanuit het woordenboek door USER_VIEWS, ALL_VIEWS of DBA_VIEWS op te vragen. Weergaven zijn handig voor beveiliging en het verbergen van informatie, maar kunnen problemen veroorzaken als ze te diep worden genest. Enkele voordelen van het gebruik van weergaven:
- Verminder de complexiteit van SQL-instructies
- Deel alleen specifieke rijen in een tabel met andere gebruikers
- Verberg de NAAM en EIGENAAR van de basistabel
- Er zijn drie categorieën weergaven
USER_% | Deze weergave bevat alleen informatie over de objecten die eigendom zijn van de gebruiker. Voorbeeld USER_TABLES,USER_TAB_COLS |
ALL-% | Deze weergave bevat informatie over de objecten waartoe de gebruiker toegang heeft in de database. Voorbeeld ALL_TABLES,ALL_TAB_COLS |
DBA_% | Deze weergave bevat informatie over alle objecten in het systeem en dit zijn beperkte weergaven die toegankelijk zijn voor de gebruiker met een DBA-rol Voorbeeld DBA_TABLES |
DBA_% weergaven over weergave-informatie | ALL_% weergaven over bekijk informatie | USER_% weergaven over weergave-informatie | |
De kolom die kan worden bijgewerkt | DBA_UPDATABLE_COLUMNS | ALL_UPDATABLE_COLUMNS | USER_UPDATABLE_COLUMNS |
Bekijken over informatie bekijken | dba_views | all_views | user_views |
Alle weergaven in Oracle weergeven
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>
Hoe de weergavedefinitie in Oracle te controleren
Zoek in de TEXT-kolom van tabel 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>';
Hoe de weergavedefinitie (DDL-instructies) uit een Oracle-database te extraheren zonder een stapel woordenboekweergaven te hoeven doorlopen
Syntax: SQL> set long 1000 SQL> set pagesize 0 SQL>select DBMS_METADATA.GET_DDL('VIEW','<view_name>') from DUAL
Ik hoop dat je een gedetailleerd artikel over Oracle-weergave leuk vindt. Ik heb geprobeerd de populaire vragen over de weergave te beantwoorden, zoals Hoe een weergave in Oracle te maken, een voorbeeld van een Oracle-weergave, hoe de weergave in Oracle te wijzigen, Hoe een weergave in Oracle te compileren, Hoe de weergave in Oracle te laten vallen, de weergave in Oracle te forceren , Hoe de weergavedefinitie in orakel te controleren
Gerelateerde artikelen om te lezen
oracle maak een tabel:tabellen zijn de basiseenheid voor gegevensopslag in een Oracle-database. we behandelen hoe Oracle de opdracht Create table te gebruiken om een tabel met een externe sleutel /primaire sleutel
externe tabellen in Oracle te maken:bekijk dit bericht voor informatie over het gebruik van de externe tabel in Oracle met een voorbeeld, hoe maak een externe tabel, hoe deze te gebruiken
Sequences in Oracle:Wat is Sequence in Oracle, Beschrijving van alle opties, Hoe ze te maken, Oracle 12c nieuwe functie van sequenties, Hoe ze te verwijderen en te wijzigen
Indexen in Oracle:bekijk informatie over Oracle-indexen, verschillende soorten indexen in Oracle met een voorbeeld, hoe u de index in Oracle kunt maken/verwijderen/wijzigen
Oracle Materialized Views:wat is Oracle materialized view, Oracle Materialized View Log, Ververs groep, verschil tussen weergave en gematerialiseerde weergave
Hoe de voortgang van het vernieuwen van gematerialiseerde weergaven te volgen
oracle alter table wijzig kolomtype:bekijk dit bericht over hoe je kolommen in oracle kunt wijzigen met behulp van de oracle alter-tabel de kolom wijzigen. Kolom wijzigen kan de standaardwaarde wijzigen, waardoor niet null
de weergave in Oracle wordt bijgewerkt:bekijk dit bericht om de weergave in Oracle bij te werken, invoegen in orakelweergave, verwijderen uit weergave in Oracle-database
Aanbevolen cursussen
Hier is de mooie Udemy-cursus voor Oracle SQL
Oracle-Sql-Step-voor-stap:deze cursus behandelt basis-sql, joins, tabellen maken en de structuur wijzigen, weergave maken, Union, Union -alles en nog veel meer . Een geweldige cursus en een must-have cursus voor SQL-starters
De complete Oracle SQL-certificeringscursus :Dit is een goede cursus voor iedereen die Job-klaar wil zijn voor SQL-ontwikkelaarsvaardigheden. Een mooi uitgelegde cursus
Oracle SQL Developer:Essentials, Tips and Tricks :Oracle Sql-ontwikkelaarstool wordt door veel ontwikkelaars gebruikt. Deze cursus geeft ons trucs en lessen om het effectief te gebruiken en een productieve sql-ontwikkelaar te worden
Oracle SQL Performance Tuning Masterclass 2020 :Het afstemmen van prestaties is een van de kritische en meest gezochte vaardigheden. Dit is een goede cursus om erover te leren en te beginnen met het afstemmen van sql-prestaties