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

Sådan opretter du udsigt i oracle

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

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


  1. MySQL SELECT kun ikke null-værdier

  2. Python MySQL-stik - ulæst resultat fundet ved brug af fetchone

  3. Sådan aktiveres Change Data Capture (CDC) på en database i SQL Server - SQL Server Tutorial

  4. Sådan ændres kolonne fra NULL til IKKE NULL