SQL Views sind Projektionen von Tabellen, die nicht alle Spalten enthalten.

CREATE VIEW Viewname AS Abfrage; --View erstellen
CREATE OR REPLACE VIEW Viewname AS Abfrage; --View verändern
DROP VIEW Viewname; --View löschen 
SQL View

SQL Views (häufig auch Sichten genannt) sind Tabellen, die selbst keine Daten enthalten, sondern Informationen aus verschiedenen Tabellen und Spalten projizieren. Eine View ist die Kurzform einer gespeicherten Abfrage, welche man wie eine Tabelle abrufen. SQL-Abfragen können durch die Verwendung von mehreren JOINs, GROUP BYs, HAVINGs, Subqueries usw. sehr kompliziert erscheinen. Um Anwendern ohne Kenntnisse über die Tabellen und Spalten den Zugriff zu vereinfachen, eignet sich die Erstellung von Views.

Es kann vom Datenbankadministrator gewünscht sein, dass einfache Datenbanknutzer nur auf bestimmte Spalten statt auf die gesamte Tabelle zugreifen können. Dazu erstellt er eine virtuelle Tabelle ohne diese Spalten.

SQL View erstellen

CREATE VIEW Viewname AS Abfrage; 

Beispiel: Ein Business Development Praktikant soll einen Report für die Autoverkäufe des letzten Monats erstellen. Die Tabelle der Verkäufe ist allerdings nach Mitarbeitern aufgelistet. Darin stehen auch private Informationen, die aus Datenschutz-Gründen nicht an den Praktikanten weitergeleitet werden dürfen. Dazu erstellt der Datenbankadministrator eine View, bei der nur die Jahre an Erfahrung und der Umsatz aller Verkäufer wiedergegeben werden:

ID

Vorname

Nachname

Straße

PLZ

Stadt

Geburtsdatum

Erfahrung

Job

Umsatz

1

Max

Mustermann

Beispielstr. 1

12345

Berlin

01.01.1990

5J

Verkäufer

2000€

2

Erika

Musterfrau

Beispielstr. 2

12345

Berlin

31.12.2000

1J

Verkäufer

10000€

3

Maria

Schmidt

Wegstr. 3

54321

Hamburg

01.01.1995

4J

Analyst

NULL

4

Mario

Müller

Straßenweg 4

54321

Hamburg

01.06.1980

5J

Verkäufer

40000€

CREATE VIEW Umsatz_Analyse AS
SELECT Erfahrung, Umsatz
FROM Personal
WHERE Job = 'Verkäufer'; 

Der Praktikant erhält Zugriff zu dieser View und öffnet sie via:

SELECT * FROM Umsatz_Analyse; 

Umsatz_Analyse

Erfahrung

Umsatz

5J

2000€

1J

10000€

5J

40000€

SQL View updaten

CREATE OR REPLACE VIEW Viewname AS Abfrage; 

Beispiel: Der Praktikant möchte den Anteil aller Verkäufer im Unternehmen berechnen. Dazu braucht er die Spalte „Job“ aus der Ursprungstabelle. Er bittet den Datenbankadministrator daher, die View auf diese Spalte zu erweitern. Damit der Praktikant seinen bisherigen Code nicht ändern muss, bittet er den Administrator, den Namen der View nicht zu verändern.

Die Anweisung CREATE OR REPLACE VIEW ermöglicht das Updaten einer View. Wie die Anweisung impliziert wird eine neue View erstellt oder ersetzt, falls eine View mit demselben Namen bereits existiert.

Der Datenbankadministrator nutzt daher folgenden SQL-Befehl:

CREATE OR REPLACE VIEW Umsatz_Analyse AS
SELECT Job, Erfahrung, Umsatz
FROM Personal; 

Der Praktikant hat nun Zugriff auf alle Mitarbeiter. Er überprüft die Änderung via:

SELECT * FROM Umsatz_Analyse; 

Umsatz_Analyse

Job

Erfahrung

Umsatz

Verkäufer

5J

2000€

Verkäufer

1J

10000€

Analyst

4J

NULL

Verkäufer

5J

40000€

SQL View löschen

DROP VIEW Viewname; 

Nachdem der Praktikant das Reporting erstellt hat, informiert er den Datenbankadministrator, dass die View gelöscht werden kann. Das geschieht über die Anweisung DROP VIEW:

DROP VIEW Umsatz_Analyse; 

ARTIKEL TEILEN

Hast du Fragen? Hinterlasse einen Kommentar!