Wichtig

Übersetzen ist eine Gemeinschaftsleistung Sie können mitmachen. Diese Seite ist aktuell zu 83.33% übersetzt.

15.5. Lesson: Views

Das Schreiben einer Abfrage erfordert viel Zeit und Aufwand. Mit Hilfe von Sichten kann man die Formulierung einer SQL Abfrage in Form einer wiederverwendbaren ‚virtuellen Tabelle‘ speichern.

Ziel dieser Lektion: Das Speichern einer Abfrage als Sicht.

15.5.1. Erstellen einer Sicht

Man kann eine Sicht wie eine Tabelle behandeln, die Daten stammen aber aus einer Abfrage. Sehen wir uns eine einfache Sicht an:

create view roads_count_v as
  select count(people.name), streets.name
  from people, streets where people.street_id=streets.id
  group by people.street_id, streets.name;

As you can see the only change is the create view roads_count_v as part at the beginning. We can now select data from that view:

select * from roads_count_v;

Ergebnis:

 count |    name
-------+-------------
     1 | Main Road
     2 | High street
     1 | Low Street
(3 rows)

15.5.2. Veränderung einer Sicht

Eine Sicht ist nicht unveränderlich und enthält auch keine ‚echten Daten‘. Das bedeutet, dass sie leicht verändert werden kann, ohne die eigentlichen Daten in der Datenbank zu beeinflussen:

CREATE OR REPLACE VIEW roads_count_v AS
  SELECT count(people.name), streets.name
  FROM people, streets WHERE people.street_id=streets.id
  GROUP BY people.street_id, streets.name
  ORDER BY streets.name;

(Dieses Beispiel zeigt die empfohlene Praxis zur Nutzung von GROSSSCHREIBUNG für alle SQL Schlüsselwörter.)

You will see that we have added an ORDER BY clause so that our view rows are nicely sorted:

select * from roads_count_v;

 count |    name
-------+-------------
     2 | High street
     1 | Low Street
     1 | Main Road
(3 rows)

15.5.3. Verwerfen einer Sicht

Wenn man eine Sicht nicht länger benötigt, kann sie wie folgt gelöscht werden:

drop view roads_count_v;

15.5.4. Zusammenfassung

Mit Hilfe von Sichten kann man Abfragen speichern. Auf die Ausgabe der Abfragen kann man dann wie auf eine Tabelle zugreifen.

15.5.5. Was kommt als Nächstes?

Manchmal möchte man, dass die Ädnerung von bestimmten Daten auch Auswirkungen auf andere Teile der Datenbank hat. In der nächsten Lektion sehen wir, wie man das macht.