Insbesondere um komplexe aber dennoch häufig benötigte Datenbankanfragen nicht jedes Mal neu als SQL-Statement formulieren zu
müssen, gibt es in relationalen Datenbanken die Möglichkeit sogenannte Views (deutsch: Sichten) zu erstellen. Eine andere Anwendung
von Views ist die Umsetzung von Zugriffsbeschränkungen auf Daten für unterschiedliche Benutzergruppen. Dabei handelt es sich im
Prinzip um gespeicherte SELECT-Statements, die unter einem bestimmten Namen in der Datenbank abgelegt
werden. In einem View werden keine zusätzlichen Datensätze gespeichert. Ein View wird daher manchmal auch imaginäre Tabelle
oder virtuelle Tabelle genannt. Ein erzeugter View kann in anderen SQL-Statements wie eine Tabelle der Datenbank angesprochen werden.
Beispiel
In der Datenbank ONLINESHOP soll ein View angelegt werden, der eine nach Namen sortierte Liste aller sofort verfügbaren
Filme sowie deren Detailinformation enthält.
SELECT-Statement
SELECT * FROM Artikel INNER JOIN Film USING(ArtikelID)
WHERE Verfuegbarkeit = 'sofort' ORDER BY Name;
Das Anlegen einer Sicht erfolgt mit dem SQL-Statement CREATE VIEW wie in der folgenden Abbildung
dargestellt. Mit Hilfe eines Präfix können bei späterer Verwendung Views von Tabellen klar unterschieden werden.

Der oben erstellte View kann nun unter dem Namen ViewSofortVerfuegbareFilme wiederverwendet werden. Der SQL-Befehl in der folgenden
Abbildung nutzt den erstellten View, um alle sofort verfügbaren Filme auszugeben, die in deutscher Sprache verfügbar sind. Der
View wird dort wie eine normale Datenbanktabelle im SELECT-Statement verwendet.

Views dienen in erster Linie zum Lesen von Daten. Unter folgenden Bedingungen lassen sich aber auch Änderungen am Datenbestand direkt auf dem View umsetzen:
JOIN erlaubtDISTINCT und nicht GROUP BYSind alle diese Bedingungen erfüllt, handelt es sich um einen schreibbaren View. Anderenfalls wurde ein Read Only View definiert.