Views
Was sind MySQL Views
MySQL Views sind virtuelle Tabellen, die aus einer oder mehreren Tabellen oder anderen Views abgeleitet werden. Sie ermöglichen es Ihnen, komplexe Abfragen zu vereinfachen, indem Sie eine Ansicht auf Daten erstellen, die aus verschiedenen Tabellen stammen. Views speichern keine Daten physisch, sondern speichern nur die Definition der Abfrage, die verwendet wird, um die Daten abzurufen.
Wenn Sie eine View erstellen, können Sie die Spalten auswählen, die angezeigt werden sollen, Filterbedingungen hinzufügen oder Aggregatfunktionen anwenden. Eine View kann auch als Teil einer komplexeren Abfrage verwendet werden, um die Daten weiter zu bearbeiten oder zu filtern. Da Views keine Daten physisch speichern, werden die Daten jedes Mal abgefragt, wenn die View verwendet wird.
Situationen in denen MySQL Views verwendet werden können
MySQL Views können in einer Vielzahl von Situationen nützlich sein, insbesondere wenn komplexe Abfragen ausgeführt werden müssen, die Daten aus verschiedenen Tabellen kombinieren oder filtern. Hier sind einige Beispiele, in denen MySQL Views hilfreich sein können:
Vereinfachen von Abfragen: Views können verwendet werden, um komplexe Abfragen zu vereinfachen, indem sie als vordefinierte Abfragen erstellt werden, die oft verwendet werden. Statt die Abfrage jedes Mal zu schreiben, kann die View verwendet werden, um die Daten auf die gewünschte Weise anzuzeigen.
Reduzieren von Code-Wiederholungen: Wenn Sie dieselbe Abfrage in mehreren Abfragen verwenden, können Sie eine View erstellen, um den Code zu reduzieren und die Wartung zu vereinfachen. Wenn die Abfrage in der View geändert wird, ändert sich die Ausgabe für alle Abfragen, die die View verwenden.
Sicherheitsverbesserung: Durch die Verwendung von Views können Sie den Zugriff auf Daten steuern, indem Sie den Benutzerzugriff auf bestimmte Views beschränken. Auf diese Weise können Sie sicherstellen, dass bestimmte Benutzer nur auf die Daten zugreifen können, die sie benötigen.
Insgesamt sind MySQL Views nützlich, um die Abfrage-Erstellung zu vereinfachen, Code-Wiederholungen zu reduzieren, die Sicherheit zu verbessern, Abfragen zu optimieren und Daten aus verschiedenen Tabellen zu kombinieren.
Wie werden Views erstellt
Um eine MySQL View zu erstellen, können Sie die folgende Syntax verwenden:
CREATE VIEW view_name AS
SELECT column1, column2, column3
FROM table1
WHERE condition;
Hier ist view_name der Name der View, die erstellt werden soll. Danach erfolgt die SELECT-Abfrage, die für die View ausgeführt werden soll.
Um zum Beispiel eine View zu erstellen, die alle Produkte anzeigt, die in der Kategorie „Bücher“ liegen, kann die folgende Abfrage ausgeführt werden:
CREATE VIEW books_view AS
SELECT product_name, price FROM products WHERE category = 'Bücher';
Dies erstellt eine View namens books_view, die die Spalten „product_name“ und „price“ aus der Tabelle „products“ enthält, wobei nur die Datensätze ausgewählt werden, die in der Kategorie „Bücher“ liegen.
Sobald die View erstellt wurde, kann sie wie eine normale Tabelle verwendet werden. Sie können sie in Abfragen einbeziehen, um Daten abzurufen, sie aktualisieren oder löschen, wie Sie es mit einer normalen Tabelle tun würden.
Es ist wichtig zu beachten, dass Views nur Lesezugriff auf die darunterliegende Tabelle gewähren. Wenn Sie eine View aktualisieren oder löschen, werden die Änderungen nicht auf die ursprüngliche Tabelle übertragen. Wenn Sie die Daten in der ursprünglichen Tabelle ändern möchten, müssen Sie dies direkt in der Tabelle tun.
Bemerkung
Falls in der Select-Abfrage gleiche Spaltennamen vorkommen, muss den Spalten mittels as ein neuer Name gegeben werden.
CREATE VIEW view_test AS
SELECT k.name AS Kunden_Name, e.name AS Event_Name
Views verändern
Um eine View zu ändern, muss man die ALTER VIEW-Anweisung verwenden. Hier ist ein Beispiel:
ALTER VIEW view_name AS
SELECT column1, column2, column3, column4
FROM table1
WHERE condition;
In diesem Beispiel wurde die View view_name geändert, um eine weitere Spalte column4 hinzuzufügen.
Views abrufen
Views können auf die gleiche Weise wie Tabellen abgerufen werden, da sie wie virtuelle Tabellen behandelt werden. Sie können in SELECT-Abfragen einbezogen werden, um die Ergebnisse zu filtern und zu aggregieren, ähnlich wie bei einer normalen Tabelle.
Um eine View abzurufen, können Sie den Namen der View in einer SELECT-Abfrage verwenden, genauso wie Sie den Namen einer Tabelle verwenden würden.
Angenommen, Sie haben eine View namens „sales_report“ erstellt, die den Gesamtumsatz nach Monaten aufschlüsselt. Um diese View abzurufen, können Sie folgende Abfrage ausführen:
SELECT * FROM sales_report;
Diese Abfrage gibt alle Datensätze aus der View „sales_report“ zurück. Sie können auch andere Klauseln wie WHERE, GROUP BY und ORDER BY verwenden, um die Ergebnisse weiter zu filtern und zu sortieren, genauso wie bei einer normalen SELECT-Abfrage.
Es ist wichtig zu beachten, dass Views keine eigenen Daten speichern, sondern lediglich eine virtuelle Tabelle darstellen, die aus den Daten mehrerer Tabellen abgeleitet wird. Wenn Sie also Daten in einer View ändern, werden die zugrunde liegenden Daten in den Tabellen, auf denen die View basiert, ebenfalls geändert.
Praktisches Beispiel
Angenommen, Sie haben eine Datenbank mit zwei Tabellen: employees und departments. Die Tabelle employees enthält Informationen zu den Mitarbeitern, während die Tabelle departments Informationen zu den Abteilungen enthält. Beide Tabellen sind durch eine Abteilungs-ID-Spalte miteinander verknüpft. Sie möchten eine Ansicht erstellen, die Informationen zu den Mitarbeitern und ihren Abteilungen enthält.
Hier ist der SQL-Code, um eine View für diese Aufgabe zu erstellen:
CREATE VIEW employee_departments AS
SELECT employees.employee_id, employees.first_name, employees.last_name, departments.department_name
FROM employees
JOIN departments
ON employees.department_id = departments.department_id;
In diesem Beispiel haben wir eine View mit dem Namen employee_departments erstellt. Die View basiert auf den Tabellen employees und departments und enthält die Spalten employee_id, first_name, last_name und department_name. Die JOIN-Klausel wird verwendet, um Daten aus beiden Tabellen zu kombinieren.
Nun können Sie diese View verwenden, um Informationen zu den Mitarbeitern und ihren Abteilungen abzurufen, indem Sie eine einfache SELECT-Anweisung ausführen:
SELECT * FROM employee_departments;
Dies wird alle Datensätze aus der View employee_departments zurückgeben. Wenn Sie die View ändern möchten, können Sie die ALTER VIEW-Anweisung verwenden, um Änderungen an der SQL-Abfrage vorzunehmen.