💻
M105 - Datenbanken mit SQL bearbeiten
  • Intro
  • 🗓️Organisatorisches
  • 🛠️Infrastruktur und Tools
  • ❓FAQ
  • Tag 1
    • 🏁Tagesziele
    • 📖💡 Datenbanklehre
    • 📖💡 DDL – Data Definition Language
    • 📖💡 DDL - Constraints
    • 💬Northwind Sample Database
    • 📖DML - Datenmanipulation
    • ❓Hilfsmittel
      • ❓Datentypen
  • Tag 2
    • 🏁Tagesziele
    • 💡DML - Aufgaben
      • ❓Hilfsmittel
    • 📖Transaktionssteuerung
      • 💡Transaktionen - Aufgaben (optional)
    • 📖DQL - Select-Anweisungen
    • 💡DQL - Aufgaben
    • 📖DQL - Join
  • Tag 3
    • 🏁Tagesziele
    • 📖DQL - Komplexere Abfragen
    • 💡DQL - Aufgaben
    • 📖 Views
    • 💡Views - Aufgaben
  • Tag 4
    • 🏁Tagesziele
    • 📖💡 DCL - Data Control Language
    • 📖💡 Funktionen
    • 📖Datenbanksicherung
    • 💡SQL Projektarbeit
      • ❓Hilfsmittel
  • Tag 5
    • 🏁Tagesziele
    • 📖💡 Datenbank-Programmierung
      • 💡Programmierung - Aufgaben (optional)
    • 📖💡 Befehlszeilenanwendung
Powered by GitBook
On this page
  • View Erstellen
  • View Abfragen
  • View ändern/löschen
  • Einschränkungen bei Views

Was this helpful?

Export as PDF
  1. Tag 3

Views

PreviousDQL - AufgabenNextViews - Aufgaben

Last updated 3 years ago

Was this helpful?

Views sind auf dem Server gespeicherte SELECT-Anweisungen. Mit jeder View, die man ausführt, führ man die darunterliegende Abfrage aus. Für den Anwender sieht das dann aus wie eine Tabelle, es ist aber nur eine Virtuelle Tabelle. Eine View bietet einen selektiven Einblick in Tabelleninhalte und kann dadurch eine oder mehrere Tabellen abstrahieren und somit die Komplexität vereinfachen für den Endbenutzer. Zudem kann man hier in der Rechtevergabe gezielt gestalten, sodass ein Benutzer z.B. keinen Zugriff auf eine Tabelle hat, dafür aber auf eine View, welche die Tabelle abfragt.

Bei einer View wird nur das SELECT Statement gespeichert und sie braucht somit (praktisch) keinen Speicherplatz.

View Erstellen

CREATE VIEW view_name [WITH ENCRYPTION] AS
    SELECT ... 
[WITH CHECK OPTION]
  • WITH ENCRYPTION: View-Definition ist in den Systemtabellen verschlüsselt (SQL Server).

  • WITH CHECK OPTION: DML nur innerhalb der View. Das heisst, per INSERT oder UPDATE können nur Werte geschrieben werden, welche von der View auch angezeigt werden.

    Beispiel: Wenn die View ViewXY eine Abfrage mit Bedingung WHERE feld1 > 10 enthält, liefert folgende Anweisung einen Fehler: UPDATE ViewXY SET feld1=5;

View Abfragen

Eine View kann grundsätzlich wie eine Tabelle abgefragt werden:

SELECT * FROM view_name;

View ändern/löschen

Gleiche Syntax wie bei CREATE VIEW bis auf die Anfangsklausel. Bei einer Änderung müssen alle Optionen wieder gesetzt werden.

-- View ändern
ALTER VIEW view_name [WITH ENCRYPTION] AS
    SELECT ...
[WITH CHECK OPTION]

-- View löschen
DROP VIEW view_name

Einschränkungen bei Views

Die SELECT-Anweisung der View darf folgende Elemente nicht enthalten:

  • ORDER BY-Klausel

  • INTO-Schlüsselwort

  • Verweis auf temporäre Tabellen

Eine DML auf eine View ist nicht möglich, wenn sie folgendes enthält:

  • Aggregatfunktionen

  • GROUP BY

  • TOP

  • UNION

  • DISTINCT

  • Berechnete Spalten in der SELECT-Klausel

📖
Quelle: https://www.c-sharpcorner.com/UploadFile/f0b2ed/views-in-sql-server/