sql >> Databasteknik >  >> RDS >> Oracle

Hur man skapar vy i oracle

I det här inlägget skulle jag prata om Oracle-vyer som används ganska flitigt i olika applikationer av säkerhets- och komplexitetsskäl. Jag skulle lista hela livscykeln för Oracle-vyn, dvs. Hur man skapar vy i Oracle, Oracle skapar vyexempel, hur man ändra vy i Oracle,Hur man kompilerar vy i Oracle,Hur man släpper vy i Oracle,Tvingar vy i Oracle,Hur man kontrollerar vydefinition i Oracle. Du kommer att veta varför Oracle View är viktiga och vad allt kan göras med det .

Samma saker är nästan giltiga för sql view också

Vad är Oracle view?

-En Oracle-vy är en representation av data från en eller flera Oracle-tabeller eller -vyer.

-En Oracle-vy är en namngiven och validerad SQL-fråga som lagras i Oracles dataordbok.

Vyer innehåller inga data – det är bara en lagrad fråga i databasen som kan köras när den anropas. All data den visar kommer från bastabellerna. Man kan se en vy som en virtuell tabell eller kartläggning av data från en eller flera

-En vy tar inget lagringsutrymme annat än för definitionen av vyn i dataordboken.

  • En vy kan användas för att representera en delmängd av data (för säkerhetsfrågor), användas för att representera en superuppsättning av data (sammanfoga flera tabeller till en vy), för att dölja komplexa kopplingar, för att ge meningsfulla namn för kolumner och för att minimera ändringar av program och datakällor.

-De refererade tabellerna kallas bastabeller .

  • För att skapa en vy använd kommandot CREATE VIEW följt av en SQL-fråga.

Exempel på skapande av Oracle

CREATE VIEW view_name AS
SELECT columns
FROM tables
[WHERE conditions];

-Du kan ange kolumnnamnen med

 CREATE VIEW (col1, col2…) AS SELECT COL1, COL2… FROM …;

-Om du skapar en vy med CREATE FORCE VIEW skapas vyn med kompileringsfel.

-Du kan skapa en skrivskyddad vy med hjälp av WITH READ ONLY-satsen.

-Oracle 9i tillåter att skapa begränsningar för vyer.

– Restriktioner för åsikter upprätthålls inte, de är deklarativa begränsningar. För att upprätthålla begränsningar måste du skapa begränsningarna på bastabellerna. Du måste alltid inkludera DISABLE NOVALIDATE-satsen när du skapar begränsningar för vyer.

Behörigheter som krävs för att skapa oracle view

För att skapa en vy i ditt eget schema måste du ha systembehörigheten CREATE VIEW. För att skapa en vy i en annan användares schema måste du ha systembehörigheten CREATE ANY VIEW.

Exempel på att skapa 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

Hur man ändrar Oracle View/hur man ändrar vyn i Oracle

Vi kan ändra vyerna med kommandot skapa eller ersätt vy. Detta gör det möjligt att ändra vy utan att släppa, återskapa och ombevilja objektprivilegier. Det finns inget sådant kommando som ändra vy lägg till en kolumn eller ändra vy ändra kolumnen. Vi måste gå igenom metoden skapa eller ersätta vy

Create or replace view emp_high_sal  as select empno,ename,sal
From emp  where sal > 200000;

Detta kommando skapar vyn om den inte finns och ändrar vyn om den finns. Alla plsql-enheter som har åtkomst till vyn blir ogiltiga efter vyändringen

Hur man kompilerar vy i Oracle

Återkompilera en vy görs med hjälp av

ALTER VIEW KOMPILERA;

Alter view  emp_high_sal  compile;

Hur man släpper vyn i Oracle

Att släppa en vy görs med kommandot DROP VIEW.

Att ta bort en vy har ingen effekt på de bastabeller som vyn är baserad på. Användare som hade tillgång till data från bastabellerna med hjälp av view kommer inte längre att kunna komma åt data från bastabellerna.

DROP VIEW view_name;

Drop view  emp_high_sal  ;

Skapa Force Oracle Views/force view i Oracle

En vy kan skapas även om den definierande frågan för vyn inte kan köras med kommandot CREATE FORCE VIEW. En sådan vy kallas en vy med fel . Det här alternativet kan vara användbart för import-/installationsverktyg för att skapa en vy innan de underliggande objekten är närvarande.

Låt oss ta ett exempel för att förstå det. Vi har inte ett bord som TEST. Men vi kan fortfarande skapa synen på det innan vi skapar tabellen med hjälp av kraftalternativet. Vyn kommer att skapas med ett kompileringsfel och förblir ogiltig

Create  force view TEST_V  as select col1,col2,col3 From test where col1 > 1000;

Skapa nu tabellen

create table TEST ( col1 number, col2 number, col3 number);

Nu kan du kompilera vyn och den blir giltig

alter view TEST_V compile;

Vad händer med vyn om bastabellerna tas bort?

Om de underliggande tabellerna släpps släpper Oracle inte vyn automatiskt. Den finns kvar i databasen och den kommer att vara i ett ogiltigt tillstånd. Om de underliggande tabellerna återskapas kommer de att bli giltiga igen

Oracle Views för att se Oracle View-data

Visa detaljer kan frågas från ordboken genom att fråga antingen USER_VIEWS, ALL_VIEWS eller DBA_VIEWS. Vyer är användbara för säkerhet och informationsdöljning men kan orsaka problem om de kapslas för djupt. Några av fördelarna med att använda vyer:

  • Minska komplexiteten i SQL-satser
  • Dela endast specifika rader i en tabell med andra användare
  • Göm basbordets NAMN och ÄGARE
  • Det finns tre kategorier av vyer
USER_% Denna vy innehåller information om objekten som ägs av användaren endast för exempel
USER_TABLES,USER_TAB_COLS
ALLA-% Denna vy innehåller information om de objekt som användaren kan komma åt i databasen.
Exempel
ALL_TABLES,ALL_TAB_COLS
DBA_% Denna vy innehåller information om alla objekt   i systemet och dessa är begränsade vyer som är tillgängliga för användaren som har en DBA-roll
Exempel
DBA_TABLES
  DBA_% visningar om visningsinformation ALLA_% visningar om  visa information USER_% visningar om visningsinformation
Kolumnen som kan uppdateras DBA_UPDATABLE_COLUMNS ALLA_UPDATABLE_COLUMNS USER_UPDATABLE_COLUMNS
Visa information om visning dba_views alla_vyer user_views

Lista alla vyer 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>

Hur man kontrollerar vydefinitionen i Oracle

Fråga kolumnen TEXT 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>';

Hur man extraherar vydefinitionen (DDL-satser) från en Oracle-databas utan att behöva gå igenom en stapel med ordboksvyer

Syntax:
SQL> set long 1000
SQL> set pagesize 0
SQL>select DBMS_METADATA.GET_DDL('VIEW','<view_name>') from DUAL

Hoppas du gillar en detaljerad artikel om Oracle View. Jag har försökt svara på de populära frågorna om vyn som hur man skapar vy i oracle, Oracle skapar vy exempel, hur man ändrar vy i oracle, hur man kompilerar vy i oracle, hur man släpper vy i oracle, forcera vy i oracle , Hur man kontrollerar vydefinitionen i Oracle

Relaterade artiklar att läsa
oracle skapa en tabell:Tabeller är den grundläggande enheten för datalagring i en Oracle-databas. vi täcker hur man använder Oracle create table-kommandot för att skapa en tabell med en främmande nyckel /primärnyckel
externa tabeller i Oracle:Kolla in det här inlägget för information om användningen av den externa tabellen i Oracle med ett exempel, hur man skapa en extern tabell, hur man använder den
Sekvenser i Oracle:Vad är Sekvens i Oracle, Beskrivning av alla alternativ, Hur man skapar dem, Oracle 12c ny funktion för sekvenser, Hur man släpper och ändrar dem
Index i oracle:Kolla in Oracles indexinformation, olika typer av index i oracle med ett exempel, hur man skapar/släpper/ändrar indexet i oracle
Oracle Materialized Views :vad är Oracle materialized view, Oracle Materialized View Log, Uppdatera grupp, skillnad mellan vy och materialiserad vy
Hur man övervakar framstegen för uppdatering av materialiserade vyer
oracle alter table modify kolumntyp:Kolla in det här inlägget om hur man ändrar kolumner i oracle med hjälp av oracle alter-tabellen ändra kolumnen. Ändra kolumn kan ändra standardvärde, vilket tillåter inte null
uppdatera vyn i Oracle :kolla in det här inlägget för att uppdatera vyn i Oracle, infoga i vyn oracle, ta bort från vyn i Oracle-databasen

Rekommenderade kurser

Här är den trevliga Udemy-kursen för Oracle SQL
Oracle-Sql-Steg-för-steg :Den här kursen täcker grundläggande sql, går med, skapar tabeller och ändrar dess struktur, Skapa vy, Union, Union -allt och mycket annat . En bra kurs och måste-kurs för SQL-startare
The Complete Oracle SQL Certification Course :Det här är en bra kurs för alla som vill vara redo för SQL-utvecklare. En trevlig förklarad kurs
Oracle SQL Developer:Essentials, Tips and Tricks :Oracle Sql-utvecklarverktyget används av många utvecklare. Den här kursen ger oss tricks och lektioner om hur man effektivt använder den och blir en produktiv SQL-utvecklare
Oracle SQL Performance Tuning Masterclass 2020 :Prestandajustering är en av de kritiska och mest eftertraktade färdigheterna. Det här är en bra kurs för att lära dig om det och börja göra sql-prestandajustering


  1. Lagra filer i SQL-databas med FILESTREAM – Del 1

  2. Få [archiver] ostödd version (1.13) i filhuvudet när du kör pg_restore

  3. Hur man kör PHP 5-applikationer med MySQL 8.0 på CentOS 7

  4. Förhindrar SQL-injektion i ASP.Net