Eine View (deutsch: Sicht) ist eine gespeicherte SELECT-Abfrage, die sich wie eine Tabelle verwenden lässt. Sie speichert selbst keine Daten, sondern zeigt bei jedem Zugriff das aktuelle Ergebnis der hinterlegten Abfrage aus einer oder mehreren Tabellen.

Warum Views nutzen?

  • Vereinfachung: Komplexe Abfragen mit JOINs und Aggregationen werden einmal als View definiert und danach wie eine Tabelle angesprochen.
  • Sicherheit: Anwender sehen nur die freigegebenen Spalten und Zeilen, nicht die zugrunde liegenden Tabellen.
  • Konsistenz: Ändert sich das Schema, wird nur die View angepasst – aufrufende Abfragen bleiben unverändert.

View anlegen und nutzen

CREATE VIEW aktive_kunden AS
SELECT k.id, k.name, k.ort
FROM kunden k
JOIN bestellungen b ON b.kunden_id = k.id
WHERE b.status = 'offen';

SELECT * FROM aktive_kunden WHERE ort = 'Lübeck';

DROP VIEW aktive_kunden;

Grenzen und Varianten

Views sind virtuell: Bei jedem Zugriff führt das Datenbanksystem die hinterlegte Abfrage aus. Bei sehr großen Datenmengen kann das langsamer sein als eine indizierte Tabelle. Manche Systeme (etwa PostgreSQL) bieten zusätzlich materialisierte Views, die das Ergebnis physisch speichern und in definierten Intervallen aktualisieren. Ob eine View aktualisierbar ist (also INSERT/UPDATE darüber erlaubt), hängt vom Datenbanksystem und der Abfrage ab – JOINs und Aggregationen machen sie meist schreibgeschützt.

Verwandte Grundlagen: SQL-Grundlagen, Primär- und Fremdschlüssel, Transaktionen.