sql >> Databáze >  >> RDS >> Oracle

Jak vytvořit pohled v oracle

V tomto příspěvku bych mluvil o pohledech Oracle, které se z důvodu bezpečnosti a složitosti poměrně hojně používají v různých aplikacích. Uvedl bych kompletní životní cyklus zobrazení Oracle, tj. jak vytvořit zobrazení v oracle, příklad vytvoření zobrazení Oracle, jak změnit pohled v oracle,jak zkompilovat pohled v oracle,jak zrušit pohled v oracle,vynutit zobrazení v oracle,jak zkontrolovat definici pohledu v oracle. Dozvíte se, proč je Oracle View důležitý a co všechno se s ním dá dělat .

Totéž platí téměř také pro zobrazení SQL

Co je zobrazení Oracle?

-Pohled Oracle je reprezentace dat z jedné nebo více tabulek nebo pohledů Oracle.

-Pohled Oracle je pojmenovaný a ověřený dotaz SQL, který je uložen v datovém slovníku Oracle.

Pohledy neobsahují žádná data – jde pouze o uložený dotaz v databázi, který lze při volání spustit. Všechna data, která zobrazuje, pocházejí ze základních tabulek. Pohled si lze představit jako virtuální tabulku nebo mapování dat z jednoho nebo více

– Pohled nezabírá žádný úložný prostor kromě definice pohledu v datovém slovníku.

  • Pohled lze použít k reprezentaci podmnožiny dat (pro bezpečnostní problémy), k reprezentaci nadmnožiny dat (spojení několika tabulek do jednoho pohledu), ke skrytí složitých spojení, k poskytování smysluplných názvů sloupců a k minimalizovat změny aplikací a zdrojů dat.

-Odkazované tabulky se nazývají základní tabulky .

  • Chcete-li vytvořit pohled, použijte příkaz CREATE VIEW následovaný dotazem SQL.

Příklad vytvoření zobrazení Oracle

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

-Názvy sloupců můžete zadat pomocí

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

-Vytvoření pohledu pomocí CREATE FORCE VIEW vytvoří pohled s chybami kompilace.

-Můžete vytvořit pohled pouze pro čtení pomocí klauzule WITH READ ONLY.

-Oracle 9i umožňuje vytvářet omezení zobrazení.

-Omezení pohledů nejsou vynucována, jsou to deklarativní omezení. Chcete-li vynutit omezení, musíte vytvořit omezení v základních tabulkách. Při vytváření omezení pohledů musíte vždy zahrnout klauzuli DISABLE NOVALIDATE.

Oprávnění nutná k vytvoření pohledu Oracle

Chcete-li vytvořit pohled ve svém vlastním schématu, musíte mít systémové oprávnění CREATE VIEW. Chcete-li vytvořit pohled ve schématu jiného uživatele, musíte mít systémové oprávnění CREATE ANY VIEW.

Příklad vytvoření 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

Jak upravit zobrazení Oracle/jak změnit zobrazení v oracle

Pohledy můžeme upravit pomocí příkazu vytvořit nebo nahradit pohled. To umožňuje měnit pohled bez zrušení, opětovného vytvoření a opětovného udělení oprávnění objektu. Neexistuje žádný takový příkaz jako alter view přidat sloupec nebo alter view upravit sloupec. Musíme projít metodou zobrazení vytvořit nebo nahradit

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

Tento příkaz vytvoří pohled, pokud neexistuje, a upraví pohled, pokud existuje. Všechny jednotky plsql, které přistupují k pohledu, se po úpravě pohledu stanou neplatnými

Jak zkompilovat pohled v oracle

Překompilování pohledu se provádí pomocí

ALTER VIEW KOMPILOVAT;

Alter view  emp_high_sal  compile;

Jak snížit zobrazení v oracle

Vypuštění pohledu se provádí pomocí příkazu DROP VIEW.

Vypuštění pohledu nemá žádný vliv na základní tabulky, na kterých je pohled založen. Uživatelé, kteří přistupovali k datům základních tabulek pomocí zobrazení, již nebudou mít přístup k datům základních tabulek.

DROP VIEW view_name;

Drop view  emp_high_sal  ;

Vytvoření Force Oracle Views / Force View v oracle

Pohled lze vytvořit i v případě, že definující dotaz pohledu nelze provést pomocí příkazu CREATE FORCE VIEW. Takové zobrazení se nazývá zobrazení s chybami . Tato možnost může být užitečná pro nástroje pro import/instalaci k vytvoření pohledu dříve, než budou přítomny základní objekty.

Vezměme si příklad, abychom to pochopili. Nemáme tabulku jako TEST. Pohled na něj ale můžeme vytvořit ještě před vytvořením tabulky pomocí volby force. Pohled bude vytvořen s chybou kompilace a zůstane neplatný

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

Nyní vytvořte tabulku

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

Nyní můžete pohled zkompilovat a stane se platným

alter view TEST_V compile;

Co se stane se zobrazením, pokud budou základní tabulky zrušeny?

Pokud jsou základní tabulky zrušeny, pak Oracle automaticky nezruší zobrazení. Zůstává v databázi a bude v neplatném stavu. Pokud jsou podkladové tabulky znovu vytvořeny, stanou se znovu platnými

Zobrazení slovníku pro zobrazení dat Oracle View

Podrobnosti zobrazení lze získat ze slovníku dotazem buď USER_VIEWS, ALL_VIEWS nebo DBA_VIEWS. Pohledy jsou užitečné pro zabezpečení a skrytí informací, ale mohou způsobit problémy, pokud jsou vnořeny příliš hluboko. Některé z výhod používání pohledů:

  • Snížení složitosti příkazů SQL
  • Sdílejte s ostatními uživateli pouze určité řádky v tabulce
  • Skryjte JMÉNO a VLASTNÍKA základní tabulky
  • Existují tři kategorie zhlédnutí
USER_% Toto zobrazení obsahuje pouze informace o objektech vlastněných uživatelem. Příklad:
USER_TABLES,USER_TAB_COLS
ALL-% Toto zobrazení obsahuje informace o objektech, ke kterým má uživatel v databázi přístup.
Příklad
ALL_TABLES,ALL_TAB_COLS
DBA_% Toto zobrazení obsahuje informace o všech objektech   v systému a jedná se o omezená zobrazení, která jsou přístupná uživateli, který má roli DBA
Příklad
DBA_TABLES
  DBA_% zobrazení informací o zobrazení ALL_% zobrazení o  zobrazení informací USER_% zobrazení informací o zobrazení
Sloupec, který lze aktualizovat DBA_UPDATABLE_COLUMNS ALL_UPDATABLE_COLUMNS USER_UPDATABLE_COLUMNS
Zobrazit informace o zobrazení dba_views všechna_zobrazení user_views

Výpis všech zobrazení v 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>

Jak zkontrolovat definici zobrazení v oracle

Dotaz na sloupec TEXT tabulky 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>';

Jak extrahovat definici pohledu (příkazy DDL) z databáze Oracle, aniž byste museli procházet hromadou pohledů slovníku

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

Doufám, že se vám bude líbit podrobný článek o zobrazení Oracle. Pokusil jsem se odpovědět na oblíbené dotazy týkající se pohledu, jako je Jak vytvořit pohled v oracle, příklad vytvoření pohledu Oracle, jak změnit pohled v oracle, Jak sestavit pohled v oracle, Jak zrušit pohled v oracle, vynutit zobrazení v oracle , Jak zkontrolovat definici pohledu v oracle

Související články k přečtení
oracle vytvořit tabulku:Tabulky jsou základní jednotkou pro ukládání dat v databázi Oracle. zabýváme se tím, jak používat příkaz Oracle create table k vytvoření tabulky s cizím klíčem /primární klíč
externí tabulky v Oracle:Podívejte se na tento příspěvek, kde najdete informace o použití externí tabulky v oracle s příkladem, jak vytvořit externí tabulku, jak ji používat
Sekvence v oracle:Co je sekvence v oracle, popis všech možností, jak je vytvořit, nová funkce sekvencí Oracle 12c, jak je vypustit a upravit
Indexy v oracle:Podívejte se na informace o indexech Oracle, různé typy indexů v oracle s příkladem, jak vytvořit/upustit/změnit index v oracle
Oracle Materialized Views :co je to materializovaný pohled Oracle, Oracle Materialized View Log, Obnovovací skupina, Rozdíl mezi zobrazením a materializovaným zobrazením
Jak monitorovat průběh obnovování materializovaných zobrazení
Oracle alter table upravit typ sloupce:Podívejte se na tento příspěvek o tom, jak upravit sloupce v oracle pomocí oracle alter tabulky upravit sloupec. Sloupec Upravit může měnit výchozí hodnotu, což umožňuje ne null
aktualizovat pohled v Oracle:podívejte se na tento příspěvek, chcete-li aktualizovat zobrazení v Oracle, vložit do zobrazení oracle, odstranit ze zobrazení v databázi Oracle

Doporučené kurzy

Zde je pěkný kurz Udemy pro Oracle SQL
Oracle-Sql-krok za krokem:Tento kurz pokrývá základní sql, spojení, vytváření tabulek a úpravu jejich struktury, vytváření zobrazení, sjednocení, sjednocení – vše a mnoho dalších věcí. . Skvělý kurz a kurz, který musíte mít pro začátečníky SQL
Úplný certifikační kurz Oracle SQL :Toto je dobrý kurz pro každého, kdo chce být Job připravený na vývojářské dovednosti SQL. Pěkně vysvětlený kurz
Oracle SQL Developer:Základy, tipy a triky :Vývojářský nástroj Oracle Sql používá mnoho vývojářů. Tento kurz nám poskytuje triky a lekce, jak jej efektivně používat a stát se produktivním vývojářem sql
Oracle SQL Performance Tuning Masterclass 2020 :Ladění výkonu je jednou z kritických a nejvyhledávanějších dovedností. Toto je dobrý kurz, jak se o tom dozvědět a začít s laděním výkonu SQL


  1. PHP kód pro převod dotazu MySQL na CSV

  2. Proč moje pesimistické zamykání v JPA s Oracle nefunguje

  3. Generujte_série v Postgresu od počátečního a koncového data v tabulce

  4. Funkce Oracle REPLACE() nezpracovává návrat vozíku a posun řádků