sql >> Database >  >> RDS >> Oracle

Hoe een weergave te maken in Oracle

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

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


  1. Waarom ongeldige conversie aangevraagd FOUTCODE:17132?

  2. pgpredict – Voorspellende analyses in PostgreSQL

  3. Zoek de partitioneringskolom voor een gepartitioneerde tabel in SQL Server (T-SQL)

  4. Construct datum uit jaar en weeknummer in MSSQL