Zu Oracle

Bereich:
Versionsinfo:
SQL
10.1, 10.2, 11.1, 11.2
Erstellung:
Letzte Überarbeitung:
02/2003 HA
06/2009 MA
 Als PDF Downloaden!

Views

Eine View ist eine logische oder virtuelle Tabelle, die auf einer bestehenden Tabelle oder einer anderen View basiert. Sie enthält keine eigenen Daten.

Eine View ermöglicht es, verschiedenen Benutzern lediglich Ausschnitte aus einer oder mehreren Tabellen zu zeigen. Auf diese Weise lassen sich Daten aus Tabellen ausblenden, die nicht für jeden Mitarbeiter einsehbar sein sollen, z.B. die Gehaltsspalte. Der Benutzer selbst bemerkt dabei keinen Unterschied zu einer normalen Tabelle.

Neben der angesprochenen Möglichkeit, den Zugriff auf Daten einzuschränken, lassen sich komplexe Abfragen (mit Unterabfragen und/oder Join-Bedingungen) stark vereinfachen.

Views können gelöscht werden, ohne die zugrundeliegenden Daten zu entfernen: DROP VIEW <view_name>;

Erstellen einer View:

Zum Erstellen einer View wird eine Unterabfrage in die CREATE VIEW-Anweisung eingebettet.
Die allgemeine Syntax dazu lautet:

CREATE [OR REPLACE] [FORCE|NOFORCE] VIEW <view_name> [(<spalten_alias>,...)]
AS <subquery>
[WITH CHECK OPTION|WITH READ ONLY];

wobei

  • OR REPLACE eine bestehende View neu erstellt,
  • FORCE das Anlegen einer View ermöglicht, auch ohne existierender Basistabelle,
  • NOFORCE die View nur bei existierender Basistabelle erstellt (Standard),
  • <spalten_alias,...> der Aliasname der Spalte(n) der Unterabfrage ist,
  • WITH CHECK OPTION verhindert, dass DML-Befehle der WHERE-Bedingung der View widersprechen,
  • WITH READ ONLY DML-Befehle auf die View verhindert.

 

Beispiel:

Es wird eine View (EMPVU_30) erzeugt, die nur die Nummern, Namen und Berufe aller Angestellten der Abteilung 30 enthält. Zusätzlich wird noch der Abteilungsort angezeigt.

SQL> CREATE VIEW empvu_30 (nr,name,beruf,ort)
     AS
       SELECT empno, ename, job, loc
       FROM emp e, dept d
       WHERE e.deptno=30 and e.deptno=d.deptno
     WITH CHECK OPTION;
View wurde angelegt.

SQL> select * from empvu_30;

     NR NAME           BERUF     ORT
------- -------------- --------- --------
   7499 ALLEN          SALESMAN  CHICAGO
   7521 WARD           SALESMAN  CHICAGO
   7654 MARTIN         SALESMAN  CHICAGO
   7698 BLAKE          MANAGER   CHICAGO
   7844 TURNER         SALESMAN  CHICAGO
   7900 JAMES          CLERK     CHICAGO


Regeln zu Views:

Folgende Regeln sind im Umgang mit Views zu beachten:

  • Beim Umbenennen der Basistabelle (RENAME-Anweisung) werden die abhängigen Views nicht mit abgeändert.
  • DML-Befehle auf Views sind nur unter bestimmten Voraussetzungen möglich. Siehe dazu Tipp des Monats Februar.
  • Data Dictionary-Views
  • Sobald eine View erstellt worden ist, können in den Data Dictionary-Views USER_VIEWS, ALL_VIEWS, DBA_VIEWS der Name und der View-Quelltext abgefragt werden.

Beispiel:

SQL> select view_name, text from user_views;

VIEW_NAME                      TEXT
------------------------------ ------------------------------------
EMPVU_30                       SELECT empno, ename, job, loc
                                   FROM emp e, dept d
                                   WHERE e.deptno=30 and e

Suche

Kontakt

Telefon:
  089 6228 6789-0

Telefon (gültig bis Ende 2010):
  089 679090-40

E-Mail Verteiler Monatstipps

Bitte nehmen Sie mich in den Verteiler der monatlichen Tipps & Tricks auf.