Seitenleiste

Community

SQL

Grundlagen

Datenbanksysteme

Client/Server

Eingebettet

Views

Eigenschaften von Views

  • Sie sind viertuelle Tabellen die spezielle Sichten auf die Datenbanktabellen darstellen
  • Durch sie können Tabellen angezeigt oder (eingeschränkt) verändert werden
  • Sie basieren auf anderen Views bzw. Tabellen
  • Definition durch ein SELECT
  • Speichern keine eigenen Daten
  • Werden wie Tabellen behandelt

Vorteile

  • Zugriffsbeschränkungen auf die Datenbank
  • Ermöglichen einfache Abfragen (ohne JOIN, GROUP BY Funktionen und Subselects)
  • Ermöglichen Datenunabhängigkeit (Name und Struktur der Tabellen werden hinfällig, Schnittstellenstandardisierung)

Syntax um einen View zu erzeugen

CREATE [OR REPLACE | FORCE] VIEW Viewname --Inhalt in [] kann geschrieben werden, 
[(Spalte1, Spalte2, Spalte3, ...)]        --| = soviel wie oder
AS SELECT ... FROM ...
[WITH CHECK OPTION [Constraintname]] --ebenfalls nicht zwingend notwendig


Wenn die Zeile mit den Spaltennamen weggelassen wird, bestimmt die SELECT-Klausel die Spaltennamen des Views.

Definition der Schlüsselwörter in Syntax

  • OR REPLACE
    • Views werden auch erzeugt, wenn bereits ein View mit gleichem Namen besteht (man erspart sich „DROP VIEW Viewname“)
  • FORCE
    • Der View kann erzeugt werden obwohl es die Tabellen des SELECTs nicht gibt
  • WITH CHECK OPTION
    • Definiert, dass man nur Zeilen in den View einfügen bzw. updaten kann, die dieser auch darstellen kann

Restriktionen bei Datenänderungen

DELETE

Ein DELETE ist verboten wenn das View-Select folgendes enthält:

  • JOIN
  • Gruppenfunktionen
  • GROUP BY Klausel
  • DISTINCT
UPDATE

Ein UPDATE ist verboten, wenn:

  • Ein DELETE verboten ist
  • Es Spalten als Ausdrücke gibt (z.B. 12 * Gehalt oder 3*4)
INSERT

Ein Insert ist verboten, wenn:

  • Ein UPDATE verboten ist
  • NOT NULL Spalten die nicht im View-Select enthalten sind (wenn es NOT NULL Spalten in der Tabelle gibt, aber nicht im View)

Löschen von Views

DROP VIEW Viewname