Oracle
 sql >> Datenbank >  >> RDS >> Oracle

So erstellen Sie eine Ansicht in Oracle

In diesem Beitrag würde ich über Oracle-Ansichten sprechen, die aus Sicherheits- und Komplexitätsgründen in verschiedenen Anwendungen ziemlich häufig verwendet werden. Ich würde den vollständigen Lebenszyklus der Oracle-Ansicht auflisten, d Ansicht in Oracle ändern, Ansicht in Oracle kompilieren, Ansicht in Oracle löschen, Ansicht in Oracle erzwingen, Ansichtsdefinition in Oracle überprüfen. Sie werden erfahren, warum Oracle View wichtig ist und was alles damit getan werden kann .

Dasselbe gilt fast auch für die SQL-Ansicht

Was ist die Oracle-Ansicht?

-Eine Oracle-Ansicht ist eine Darstellung von Daten aus einer oder mehreren Oracle-Tabellen oder -Ansichten.

- Eine Oracle-Ansicht ist eine benannte und validierte SQL-Abfrage, die im Oracle-Datenwörterbuch gespeichert ist.

Ansichten enthalten keine Daten – es handelt sich lediglich um eine gespeicherte Abfrage in der Datenbank, die beim Aufruf ausgeführt werden kann. Alle angezeigten Daten stammen aus den Basistabellen. Man kann sich eine Ansicht als eine virtuelle Tabelle oder Zuordnung von Daten aus einer oder mehreren ansehen

-Eine Ansicht nimmt außer für die Definition der Ansicht im Datenwörterbuch keinen Speicherplatz ein.

  • Eine Ansicht kann verwendet werden, um eine Teilmenge von Daten darzustellen (aus Sicherheitsgründen), verwendet werden, um eine Obermenge von Daten darzustellen (verbinden Sie mehrere Tabellen zu einer Ansicht), um komplexe Verknüpfungen zu verbergen, um aussagekräftige Namen für Spalten bereitzustellen und um Minimieren Sie Änderungen an Anwendungen und Datenquellen.

-Die referenzierten Tabellen werden Basistabellen genannt .

  • Um eine Ansicht zu erstellen, verwenden Sie den Befehl CREATE VIEW gefolgt von einer SQL-Abfrage.

Oracle-Beispiel zum Erstellen einer Ansicht

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

-Sie können die Spaltennamen mit

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

-Das Erstellen einer Ansicht mit CREATE FORCE VIEW erstellt die Ansicht mit Kompilierungsfehlern.

-Sie können eine schreibgeschützte Ansicht mit der WITH READ ONLY-Klausel erstellen.

-Oracle 9i ermöglicht das Erstellen von Einschränkungen für Ansichten.

-Einschränkungen für Ansichten werden nicht erzwungen, sie sind deklarative Einschränkungen. Um Einschränkungen zu erzwingen, müssen Sie die Einschränkungen für die Basistabellen erstellen. Sie müssen immer die Klausel DISABLE NOVALIDATE einschließen, wenn Sie Einschränkungen für Ansichten erstellen.

Erforderliche Berechtigungen zum Erstellen einer Oracle-Ansicht

Um eine Ansicht in Ihrem eigenen Schema zu erstellen, müssen Sie über das Systemprivileg CREATE VIEW verfügen. Um eine Ansicht im Schema eines anderen Benutzers zu erstellen, müssen Sie über das CREATE ANY VIEW-Systemprivileg verfügen.

Beispiel für die Erstellung von 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

Wie man die Oracle-Ansicht ändert/wie man die Ansicht in Oracle ändert

Wir können die Ansichten mit dem Befehl Ansicht erstellen oder ersetzen ändern. Dies ermöglicht das Ändern der Ansicht, ohne Objektberechtigungen zu löschen, neu zu erstellen und erneut zu gewähren. Es gibt keinen solchen Befehl wie alter view add a column oder alter view modify the column. Wir müssen die Create-or-Replace-View-Methode durchlaufen

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

Dieser Befehl erstellt die Ansicht, wenn sie nicht vorhanden ist, und ändert die Ansicht, wenn sie vorhanden ist. Alle plsql-Units, die auf die Ansicht zugreifen, werden nach der Änderung der Ansicht ungültig

Wie man die Ansicht in Oracle kompiliert

Das Neukompilieren einer Ansicht erfolgt mit dem

ALTER VIEW COMPILE;

Alter view  emp_high_sal  compile;

So löschen Sie die Ansicht in Oracle

Das Löschen einer Ansicht erfolgt mit dem Befehl DROP VIEW.

Das Löschen einer Ansicht hat keine Auswirkung auf die Basistabellen, auf denen die Ansicht basiert. Benutzer, die mit view auf die Daten der Basistabellen zugegriffen haben, können nicht mehr auf die Daten der Basistabellen zugreifen.

DROP VIEW Ansichtsname;

Drop view  emp_high_sal  ;

Erstellen von Erzwingungs-Oracle-Ansichten/Force-Ansicht in Oracle

Eine Ansicht kann mit dem Befehl CREATE FORCE VIEW auch dann erstellt werden, wenn die definierende Abfrage der Ansicht nicht ausgeführt werden kann. Eine solche Ansicht wird als Fehlerhafte Ansicht bezeichnet . Diese Option kann für Import-/Installationstools nützlich sein, um eine Ansicht zu erstellen, bevor die zugrunde liegenden Objekte vorhanden sind.

Nehmen wir ein Beispiel, um es zu verstehen. Wir haben keine Tabelle wie TEST. Aber wir können immer noch die Ansicht darauf erstellen, bevor wir die Tabelle mit der Force-Option erstellen. Die Ansicht wird mit einem Kompilierungsfehler erstellt und bleibt ungültig

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

Erstellen Sie nun die Tabelle

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

Jetzt können Sie die Ansicht kompilieren und sie wird gültig

alter view TEST_V compile;

Was passiert mit der Ansicht, wenn die Basistabellen gelöscht werden?

Wenn die zugrunde liegenden Tabellen gelöscht werden, löscht Oracle die Ansicht nicht automatisch. Es verbleibt in der Datenbank und befindet sich in einem ungültigen Zustand. Wenn die zugrunde liegenden Tabellen neu erstellt werden, werden sie wieder gültig

Wörterbuchansichten zum Anzeigen der Oracle-Ansichtsdaten

Ansichtsdetails können aus dem Wörterbuch abgefragt werden, indem entweder USER_VIEWS, ALL_VIEWS oder DBA_VIEWS abgefragt werden. Ansichten sind nützlich für die Sicherheit und das Verbergen von Informationen, können aber Probleme verursachen, wenn sie zu tief verschachtelt sind. Einige der Vorteile der Verwendung von Ansichten:

  • Reduzieren Sie die Komplexität von SQL-Anweisungen
  • Teilen Sie nur bestimmte Zeilen in einer Tabelle mit anderen Benutzern
  • Den NAMEN und EIGENTÜMER der Basistabelle ausblenden
  • Es gibt drei Kategorien von Aufrufen
USER_% Diese Ansicht enthält Informationen über die Objekte, die nur dem Benutzer gehören, zum Beispiel
USER_TABLES,USER_TAB_COLS
ALL-% Diese Ansicht enthält Informationen zu den Objekten, auf die der Benutzer in der Datenbank zugreifen kann.
Beispiel
ALL_TABLES,ALL_TAB_COLS
DBA_% Diese Ansicht enthält Informationen zu allen Objekten   im System, und dies sind eingeschränkte Ansichten, auf die der Benutzer zugreifen kann, der eine DBA-Rolle hat
Beispiel
DBA_TABLES
  DBA_% Aufrufe zu Aufrufinformationen ALL_% Aufrufe über  Informationen ansehen USER_% Ansichten über Ansichtsinformationen
Die Spalte, die aktualisiert werden kann DBA_UPDATABLE_COLUMNS ALL_UPDATABLE_COLUMNS USER_UPDATABLE_COLUMNS
Ansicht über Ansichtsinformationen dba_views all_views user_views

Alle Ansichten in Oracle auflisten

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>

So überprüfen Sie die Ansichtsdefinition in Oracle

Fragen Sie die TEXT-Spalte der Tabelle DBA_VIEWS ab.

Syntax:
SQL> set long 10000

SQL> select TEXT
2  FROM DBA_VIEWS
3  where OWNER = '<owner_name>'
4  and VIEW_NAME  = '<view_name>';

So extrahieren Sie die Ansichtsdefinition (DDL-Anweisungen) aus einer Oracle-Datenbank, ohne einen Stapel von Wörterbuchansichten durchlaufen zu müssen

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

Ich hoffe, Ihnen gefällt ein ausführlicher Artikel über Oracle View. Ich habe versucht, die gängigen Fragen zur Ansicht zu beantworten, z. B. Wie man eine Ansicht in Oracle erstellt, ein Beispiel für eine Oracle-Ansicht, wie man eine Ansicht in Oracle ändert, wie man eine Ansicht in Oracle kompiliert, wie man eine Ansicht in Oracle löscht, eine Ansicht in Oracle erzwingt , So überprüfen Sie die Ansichtsdefinition in Oracle

Verwandte Artikel zum Lesen
oracle create a table:Tabellen sind die Grundeinheit der Datenspeicherung in einer Oracle-Datenbank. Wir behandeln die Verwendung des Oracle-Befehls „Create Table“, um eine Tabelle mit einem Fremdschlüssel /Primärschlüssel
externen Tabellen in Oracle zu erstellen:In diesem Beitrag finden Sie Informationen zur Verwendung der externen Tabelle in Oracle mit einem Beispiel, wie es geht Erstellen Sie eine externe Tabelle, wie man sie verwendet
Sequenzen in Oracle:Was ist eine Sequenz in Oracle, Beschreibung aller Optionen, Wie man sie erstellt, Oracle 12c neue Funktion von Sequenzen, Wie man sie löscht und ändert
Indizes in Oracle:Informieren Sie sich über Oracle-Indexinformationen, verschiedene Arten von Indizes in Oracle mit einem Beispiel, wie Sie den Index in Oracle erstellen/löschen/ändern
Oracle Materialized Views:Was ist Oracle Materialized View, Oracle Materialized View Log, Refresh-Gruppe, Unterschied zwischen Ansicht und materialisierter Ansicht
Wie man den Fortschritt der Aktualisierung von materialisierten Ansichten überwacht
Spaltentyp der Oracle-Änderungstabelle ändern:Sehen Sie sich diesen Beitrag an, wie Sie Spalten in Oracle mithilfe der Oracle-Änderungstabelle ändern ändern Sie die Spalte. Die Spalte „Modify“ kann den Standardwert ändern, was nicht null zulässt
Aktualisieren Sie die Ansicht in Oracle:Sehen Sie sich diesen Beitrag an, um die Ansicht in Oracle zu aktualisieren, in das Orakel der Ansicht einzufügen, aus der Ansicht in der Oracle-Datenbank zu löschen

Empfohlene Kurse

Hier ist der nette Udemy-Kurs für Oracle SQL
Oracle-Sql-Schritt-für-Schritt :Dieser Kurs behandelt grundlegendes SQL, Joins, Erstellen von Tabellen und Ändern ihrer Struktur, Erstellen von Ansichten, Union, Union -all und vieles mehr . Ein großartiger Kurs und ein Muss für SQL-Einsteiger
Der vollständige Oracle SQL-Zertifizierungskurs :Dies ist ein guter Kurs für alle, die für SQL-Entwicklerfähigkeiten einsatzbereit sein möchten. Ein gut erklärter Kurs
Oracle SQL Developer:Grundlagen, Tipps und Tricks :Das Oracle Sql-Entwicklertool wird von vielen Entwicklern verwendet. Dieser Kurs gibt uns Tricks und Lektionen, wie man es effektiv nutzt und ein produktiver SQL-Entwickler wird
Oracle SQL Performance Tuning Masterclass 2020 :Leistungsoptimierung ist eine der kritischsten und gefragtesten Fähigkeiten. Dies ist ein guter Kurs, um mehr darüber zu erfahren und mit der Optimierung der SQL-Leistung zu beginnen