I dette indlæg vil jeg tale om Oracle-visninger, som bruges ret meget i forskellige applikationer af sikkerheds- og kompleksitetsgrunde. Jeg vil angive den komplette livscyklus for Oracle-visningen, dvs. ændre visningen i Oracle,Sådan kompileres visningen i Oracle,Sådan droppes visningen i Oracle,tvinges visningen i Oracle,Sådan kontrolleres visningsdefinitionen i Oracle. Du vil lære, hvorfor Oracle View er vigtige, og hvad der kan gøres med det .
Det samme er næsten gyldigt for sql view også
Hvad er Oracle view?
-En Oracle-visning er en repræsentation af data fra en eller flere Oracle-tabeller eller -visninger.
-En Oracle-visning er en navngivet og valideret SQL-forespørgsel, som er gemt i Oracle-dataordbogen.
– Visninger indeholder ingen data – det er kun en gemt forespørgsel i databasen, der kan udføres, når den kaldes. Alle de data, den viser, kommer fra basistabellerne. Man kan tænke på en visning som en virtuel tabel eller kortlægning af data fra en eller flere
-En visning optager ingen lagerplads ud over definitionen af visningen i dataordbogen.
- En visning kan bruges til at repræsentere et undersæt af data (til sikkerhedsproblemer), bruges til at repræsentere et supersæt af data (sammenføj flere tabeller til én visning), til at skjule komplekse sammenkædninger, til at give meningsfulde navne til kolonner og til at minimer applikations- og datakildeændringer.
-De refererede tabeller kaldes basistabeller .
- For at oprette en visning skal du bruge CREATE VIEW-kommandoen efterfulgt af en SQL-forespørgsel.
Eksempel på oprettelse af Oracle
CREATE VIEW view_name AS SELECT columns FROM tables [WHERE conditions];
-Du kan angive kolonnenavnene ved hjælp af
CREATE VIEW (col1, col2…) AS SELECT COL1, COL2… FROM …;
-Oprettelse af en visning ved hjælp af CREATE FORCE VIEW vil oprette visningen med kompileringsfejl.
-Du kan oprette en skrivebeskyttet visning ved at bruge WITH READ ONLY-klausulen.
-Oracle 9i giver mulighed for at skabe begrænsninger for visninger.
- Begrænsninger på synspunkter håndhæves ikke, de er deklarative begrænsninger. For at håndhæve begrænsninger skal du oprette begrænsningerne på basistabellerne. Du skal altid inkludere DISABLE NOVALIDATE-sætningen, når du opretter begrænsninger på visninger.
Privilegier påkrævet for at oprette orakelvisning
For at oprette en visning i dit eget skema, skal du have systemprivilegiet CREATE VIEW. For at oprette en visning i en anden brugers skema skal du have systemprivilegiet CREATE ANY VIEW.
Eksempel på oprettelse af 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
Sådan ændres Oracle-visningen/hvordan man ændrer visningen i Oracle
Vi kan ændre visningerne ved at bruge create or replace view-kommandoen. Dette gør det muligt at ændre visningen uden at droppe, genskabe og gentildele objektprivilegier. Der er ingen sådan kommando som ændre visning, tilføje en kolonne eller ændre visning, ændre kolonnen. Vi skal gennemgå opret eller erstat visningsmetoden
Create or replace view emp_high_sal as select empno,ename,sal From emp where sal > 200000;
Denne kommando opretter visningen, hvis den ikke findes, og ændrer visningen, hvis den findes. Alle plsql-enheder, der har adgang til visningen, bliver ugyldige efter visningsændringen
Sådan kompileres visning i Oracle
Genkompilering af en visning udføres ved hjælp af
ÆNDRINGSVISNING
Alter view emp_high_sal compile;
Sådan dropper du visningen i Oracle
Sletning af en visning sker ved hjælp af kommandoen DROP VIEW.
Sletning af en visning har ingen effekt på de basistabeller, som visningen er baseret på. Brugere, der havde adgang til dataene i basistabellerne ved hjælp af view, vil ikke længere kunne få adgang til dataene i basistabellerne.
DROP VIEW view_name;
Drop view emp_high_sal ;
Oprettelse af Force Oracle Views/force view i oracle
En visning kan oprettes, selvom den definerende forespørgsel til visningen ikke kan udføres, ved hjælp af CREATE FORCE VIEW-kommandoen. En sådan visning kaldes en visning med fejl . Denne indstilling kan være nyttig for import-/installationsværktøjer til at skabe en visning, før de underliggende objekter er til stede.
Lad os tage et eksempel for at forstå det. Vi har ikke et bord som TEST. Men vi kan stadig oprette visningen af det, før vi opretter tabellen ved hjælp af kraftindstillingen. Visningen vil blive oprettet med en kompileringsfejl og forbliver ugyldig
Create force view TEST_V as select col1,col2,col3 From test where col1 > 1000;
Opret nu tabellen
create table TEST ( col1 number, col2 number, col3 number);
Nu kan du kompilere visningen, og den bliver gyldig
alter view TEST_V compile;
Hvad sker der med visningen, hvis basistabellerne slettes?
Hvis de underliggende tabeller droppes, så dropper Oracle ikke visningen automatisk. Det forbliver i databasen, og det vil være i en ugyldig tilstand. Hvis de underliggende tabeller genskabes, bliver de gyldige igen
Ordbogsvisninger til at se Oracle View-dataene
Se detaljer kan forespørges fra ordbogen ved at forespørge enten USER_VIEWS, ALL_VIEWS eller DBA_VIEWS. Visninger er nyttige til sikkerhed og til at skjule oplysninger, men kan forårsage problemer, hvis de indlejres for dybt. Nogle af fordelene ved at bruge visninger:
- Reducer kompleksiteten af SQL-sætninger
- Del kun specifikke rækker i en tabel med andre brugere
- Skjul NAVN og EJER af basistabellen
- Der er tre kategorier af visninger
USER_% | Denne visning indeholder kun oplysninger om de objekter, der ejes af brugeren. For eksempel USER_TABLES,USER_TAB_COLS |
ALLE-% | Denne visning indeholder information om de objekter, som brugeren kan få adgang til i databasen. Eksempel ALL_TABLES,ALL_TAB_COLS |
DBA_% | Denne visning indeholder oplysninger om alle objekter i systemet, og disse er begrænsede visninger, der er tilgængelige for brugeren, der har en DBA-rolle Eksempel DBA_TABLES |
DBA_% visninger om visningsoplysninger | ALLE_% visninger om se oplysninger | USER_% visninger om visningsoplysninger | |
Kolonnen, der kan opdateres | DBA_UPDATABLE_COLUMNS | ALL_UPDATABLE_COLUMNS | USER_UPDATABLE_COLUMNS |
Vis om visningsoplysninger | dba_views | alle_visninger | user_views |
Visning af alle visninger i 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>
Sådan kontrollerer du visningsdefinition i Oracle
Forespørg på TEXT-kolonnen i tabellen 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>';
Sådan udtrækkes visningsdefinitionen (DDL-sætninger) fra en Oracle-database uden at skulle gennemgå en stak ordbogsvisninger
Syntax: SQL> set long 1000 SQL> set pagesize 0 SQL>select DBMS_METADATA.GET_DDL('VIEW','<view_name>') from DUAL
Håber du kan lide en detaljeret artikel om Oracle-visning. Jeg har forsøgt at besvare de populære forespørgsler om visningen, såsom hvordan man opretter visning i oracle, Oracle-opret visningseksempel, hvordan man ændrer visning i oracle, hvordan man kompilerer visning i oracle, hvordan man dropper visning i oracle, tvinger visning i oracle , Sådan kontrolleres visningsdefinition i oracle
Relaterede artikler at læse
oracle opret en tabel:Tabeller er den grundlæggende enhed for datalagring i en Oracle-database. vi dækker, hvordan man bruger Oracle create table-kommando til at oprette en tabel med en fremmednøgle /primærnøgle
eksterne tabeller i Oracle:Tjek dette indlæg for information om brugen af den eksterne tabel i Oracle med et eksempel, hvordan man opret en ekstern tabel, hvordan man bruger den
Sekvenser i oracle:Hvad er sekvens i oracle, beskrivelse af alle muligheder, hvordan man opretter dem, Oracle 12c ny funktion i sekvenser, hvordan man dropper og ændrer dem
Indekser i oracle:Tjek Oracle-indekseringsoplysninger, forskellige typer af indekser i oracle med et eksempel, hvordan man opretter/slipper/ændrer indekset i oracle
Oracle Materialized Views :hvad er Oracle materialized view, Oracle Materialized View Log, Opdater gruppe, forskel mellem visning og materialiseret visning
Sådan overvåger man fremskridtene for opdatering af materialiserede visninger
oracle alter table modify column type:Tjek dette indlæg om, hvordan man ændrer kolonner i oracle ved hjælp af oracle alter tabellen ændre kolonnen. Rediger kolonne kan ændre standardværdien, hvilket tillader ikke null
opdater visningen i Oracle :tjek dette indlæg for at opdatere visningen i Oracle, indsæt i visnings-oracle, slet fra visning i Oracle-databasen
Anbefalede kurser
Her er det fine Udemy-kursus til Oracle SQL
Oracle-Sql-trin-for-trin :Dette kursus dækker grundlæggende sql, joins, oprettelse af tabeller og ændring af strukturen, Create View, Union, Union -alle og meget andet. . Et godt kursus og must-have kursus for SQL starter
The Complete Oracle SQL Certification Course :Dette er et godt kursus for enhver, der ønsker at være jobklar til SQL-udviklerfærdigheder. Et godt forklaret kursus
Oracle SQL Developer:Essentials, Tips and Tricks :Oracle Sql-udviklerværktøj bliver brugt af mange udviklere. Dette kursus giver os tricks og lektioner til, hvordan man effektivt bruger det og bliver en produktiv sql-udvikler
Oracle SQL Performance Tuning Masterclass 2020 :Ydeevnejustering er en af de kritiske og mest søgte færdigheder. Dette er et godt kursus for at lære om det og begynde at lave sql-ydelsesjustering