Views
Constraints & Struktur
Ein View (Sicht) ist eine virtuelle Tabelle, die auf einer gespeicherten Abfrage beruht. Der View enthält selbst keine Daten – er zeigt immer das aktuelle Ergebnis seiner zugrunde liegenden SELECT-Abfrage. Du kannst ihn abfragen wie eine echte Tabelle.
Syntax
CREATE VIEW viewname AS SELECT ... FROM ... WHERE ...;
Beispiel: View für deutsche Kunden
Wir erstellen einen View, der nur Kunden aus Deutschland zeigt:
CREATE VIEW DeutscheKunden AS SELECT KundenID, Name, Stadt, Umsatz FROM Kunden WHERE Land = 'DE';
Den View fragst du anschließend ab wie eine normale Tabelle:
SELECT * FROM DeutscheKunden ORDER BY Umsatz DESC;
View mit Verknüpfung mehrerer Tabellen
Ein View kann auch Daten aus mehreren Tabellen bündeln – etwa Bestellungen mit Kundennamen:
CREATE VIEW BestellUebersicht AS SELECT b.BestellID, k.Name, p.Produktname, b.Menge FROM Bestellungen b JOIN Kunden k ON b.KundenID = k.KundenID JOIN Produkte p ON b.ProduktID = p.ProduktID;
Vorteile von Views
- Vereinfachung: komplexe Abfragen werden zu einem einfachen Namen.
- Wiederverwendung: dieselbe Logik an vielen Stellen nutzen.
- Sicherheit: du gibst nur ausgewählte Spalten frei und versteckst sensible.
- Konsistenz: Berechnungen sind einmal definiert und überall gleich.
View ändern oder löschen
CREATE OR REPLACE VIEW DeutscheKunden AS SELECT KundenID, Name FROM Kunden WHERE Land = 'DE'; DROP VIEW DeutscheKunden;
Stolperfalle
Ein View ist meist nur zum Lesen gedacht. INSERT oder UPDATE über einen View funktionieren nur in einfachen Fällen (eine Tabelle, keine Aggregate, keine JOINs) und sind oft eingeschränkt. Bedenke außerdem: Ein View speichert kein Ergebnis, sondern führt die Abfrage bei jedem Zugriff neu aus – bei sehr komplexen Views kann das Performance kosten.