CREATE VIEW-Anweisung (SQL, Oracle)

Mittels der CREATE VIEW-Anweisung werden virtuelle Sichten erzeugt. Gelöscht werden sie wieder mit der DROP-Anweisung.

Syntax der CREATE-VIEW-Anweisung (SQL, Oralce):

   <CREATE VIEW-Anweisung (SQL-, ORACLE-, DB/2)> := 
           CREATE VIEW viewname [( <<Spaltendefinition> [, <<Spaltendefinition>]...)]
                                 AS <Unterabfrage?>
                                 [ WITH CHECK OPTION ]

Name und Datentyp der einzelnen Spalten werden aus der Anfrage abgeleitet und müssen nicht explizit angegeben werden. Ursprünglich erlaubte der SQL-Standard keine Vergabe von Attributnamen für berechnete Spalten in Ergebnisrelationen. Aus diesem Grund kann optional eine Schemadeklaration hinter dem Sichtnamen eingefügt werden, in der die Namen der Spalten festgelegt werden können. Durch dieses Sprachkonstrukt ist auch die Umbenennung der Spalten erlaubt.

Die Angabe der Schlüsselwörter WITH CHECK OPTION ist ein weiterer optionaler Teil der Sichtdeklaration. Durch diese Angabe wird festgelegt, dass Änderungen der Sicht, die den in ihr nicht sichtbaren Teil der Datenbank beeinflussen, in einem Test erkannt und abgewiesen werden sollen. Somit nutzt diese Option die where-Klausel der Sichtdefinition als Integritätsbedingung für die Sicht. SQL-Abfragen innerhalb einer Sichtdefinition können in ihrer FROM-Klausel selbst wieder Sichten enthalten. In SQL 2003 wird die Frage, ob die WHERE-Klauseln dieser inneren Sichten auch geprüft werden sollen, damit beantwortet, dass die Klausel WITH CHECK OPTION um die Angaben LOCAL oder CASCADED erweitert werden kann. Möchte man nur die WHERE-Klausel der direkten Sichtdefinition als Integritätsbedingung prüfen, benutzt man die Klausel WITH LOCAL CHECK OPTION. Hingegen bewirkt die Klausel WITH CASCADED CHECK OPTION, dass darüber hinaus auch die WHERE-Klauseln aller Sichten geprüft werden, auf denen die betroffene Sicht direkt oder indirekt basiert. Die ursprüngliche Klausel WITH CHECK OPTION ist somit die gleiche wie WITH CASCADED CHECK OPTION, wobei dann der Zusatz CASCADED den Defaultwert bezeichnet.

Meta-Informationen einer View kann man über das Data Dictionary einsehen.

siehe auch: CREATE-MATERIALIZED-VIEW (Oracle), Namensraum

Beispiel (SQL-, ORACLE-, DB/2-VV):

  CREATE VIEW Angestellte_abteilung_vv (Mitarbeitername, Gehalt, Abteilung) AS
  SELECT Nachname || ' ' ,|| Vorname, Gehalt, Abteilungen.Name 
    FROM Angestellte, Abteilungen
   WHERE AngestelIte.Abt_nr = Abteilungen.Abt_nr
     AND Gehalt > 8000; 

Quellen:

  • ANSI/ISO/IEC 9075-1:2003. Part 1 "SQL/Framework", ISO International Organization for Standardization / ANSI American National Standards Institute, September 2003
  • ANSI/ISO/IEC 9075-2:2003. Part 2 "SQL/Foundation", ISO International Organization for Standardization / ANSI American National Standards Institute, Dezember 2003
  • Elmasri, Ramez/Navathe, Shamkant B.: "Grundlagen von Datenbanksystemen" , Pearson Studium, München, 2002, ISBN 3-8273-7021-3
  • Faeskorn-Woyke, Heide/Bertelsmeier, Birgit/Riemer, Petra/Bauer, Elena: "Datenbanksysteme - Theorie und Praxis mit SQL2003, Oracle und MySQL", Pearson Education, München, 2007, ISBN 978-3-8273-7266-6
  • Kemper, Alfons/Eickler, André: "Datenbanksysteme", Oldenbourg, München, 2009, 978-3-486-59018-0
  • Melton, Jim/Simon, Alan R.: "SQL: 1999 - Understanding Relational Language Components", Morgan Kaufmann, San Francisco, 2001, ISBN 1558604561
  • Oracle® Database SQL Language Reference 11g Release 2 (11.2), E17118-03, August 2010, http://download.oracle.com/docs/cd/E11882_01/server.112/e17118.pdf
  • Saake, Gunter/Sattler, Kai-Uwe/Heuer, Andreas: "Datenbanken - Konzepte und Sprachen", mitp-Verlag, Redline GmbH, Heidelberg, 2007, ISBN 3-8266-1664-2
  • Vossen, Gottfried: "Datenmodelle, Datenbanksprachen und Datenbankmanagementsysteme", Oldenbourg, München, 2008, ISBN 978-3-486-27574-2

Kategorien: SQL, C