Wir verwenden SQL oder Structured Query Language, um mit einer relationalen Datenbank zu kommunizieren und SQL-Ansichten zu erstellen.
Was sind nun SQL-Ansichten? Es handelt sich um virtuelle Tabellen, die Daten aus von Ihnen erstellten Datenbanktabellen kombinieren und speichern. Im Gegenzug erhalten Sie einen sicheren und vereinfachten Zugriff auf Ihren Datenbestand, während die zugrunde liegenden Tabellenstrukturen und Implementierungen verborgen bleiben.
Wie funktioniert das also? Sie wissen bereits, dass SQL-Abfragen zur Erstellung von SQL-Ansichten verwendet werden. Wenn die SQL-Ansicht erstellt wird, wird die zugrunde liegende SQL-Abfrage gespeichert. Wenn Sie eine SQL-Abfrage verwenden, um Daten aus mehreren Tabellen abzurufen, wird die Abfrage ausgeführt und hilft dabei, Daten aus den entsprechenden Datenbanktabellen zu holen. In ähnlicher Weise wird bei der Abfrage einer erstellten SQL-Ansicht die gespeicherte Abfrage zunächst abgerufen und dann ausgeführt.
Wie ist das Erstellen von SQL-Ansichten nützlich?
Da SQL-Ansichten durch gespeicherte SQL-Abfragen unterstützt werden, tragen sie zur Sicherheit Ihrer Datenbank bei. Außerdem vereinfachen sie komplexe Abfragen und erhöhen die Leistung Ihrer Abfragen, um nur einige Vorteile zu nennen. Sehen wir uns an, wie die Erstellung von SQL-Ansichten für Ihre Datenbank und Ihre Anwendungen von Nutzen sein kann:
#1. Bietet Datenbanksicherheit
SQL-Views fungieren als virtuelle Tabellen und verbergen die Strukturen der eigentlichen Datenbanktabellen. Wenn Sie also nur einen Blick auf einen View werfen, können Sie nicht wissen, wie viele Tabellen es gibt und wie die verschiedenen Spalten in der Tabelle lauten. Außerdem können Sie Ihrer Datenbank Zugriffsbeschränkungen hinzufügen, so dass ein Benutzer nur die Ansicht und nicht die eigentlichen Tabellen abfragen kann.
#2. Vereinfachung komplexer Abfragen
Oftmals erstrecken sich Ihre SQL-Abfragen über mehrere Tabellen mit komplexen Verknüpfungsbedingungen. Wenn Sie solche komplexen Abfragen häufig verwenden, können Sie sich die Vorteile der Erstellung von SQL-Ansichten zunutze machen. Sie können Ihre komplexe Abfrage in Ihrer SQL-Ansicht speichern. Auf diese Weise können Sie einfach die Ansicht abfragen und müssen nicht die gesamte komplexe Abfrage ausführen.
#3. Schutz vor Schemaänderungen
Wenn Ihre zugrunde liegenden Tabellenstrukturen geändert werden, z.B. durch Hinzufügen oder Entfernen von Spalten, bleiben Ihre Ansichten davon unberührt. Wenn Sie sich bei all Ihren Abfragen auf Ihre SQL-Ansichten verlassen, müssen Sie sich nicht um die Schemaänderung kümmern. Da es sich um virtuelle Tabellen handelt, werden Ihre erstellten SQL-Ansichten weiterhin nahtlos funktionieren.
#4. Verbessert die Abfrageleistung
Wenn Sie SQL-Ansichten erstellen, optimiert die Datenbank-Engine die zugrunde liegende Abfrage, bevor sie gespeichert wird. Eine gespeicherte Abfrage läuft schneller als die direkte Ausführung der gleichen Abfrage. Durch die Verwendung von SQL-Ansichten zur Abfrage Ihrer Daten erhalten Sie also eine bessere Leistung und schnellere Ergebnisse.
Wie erstellt man SQL-Ansichten?
Um SQL-Ansichten zu erstellen, können Sie den Befehl CREATE VIEW
verwenden. Eine Ansicht enthält eine SELECT-Anweisung. Diese gibt die Abfrage an, die in der Ansicht gespeichert werden soll. Die Syntax lautet wie folgt:
CREATE VIEW view_name AS
SELECT
spalte_1,
spalte_2,
spalte_3...
FROM
tabelle_name_1, tabelle_name_2
WHERE
bedingung_klausel
Lassen Sie uns dies anhand eines Beispiels verstehen. Nehmen wir an, Sie haben zwei Tabellen erstellt: Abteilung
und Mitarbeiter
. Die Abteilung
enthält den Namen der Abteilung und ihre ID. Dementsprechend enthält die Tabelle Mitarbeiter
den Namen und die ID des Mitarbeiters zusammen mit der ID der Abteilung, zu der er gehört. Sie werden diese beiden Tabellen für die Erstellung Ihrer SQL-Ansicht verwenden.
Erstellen Sie Ihre Datenbanktabellen
abteilung_id | abteilung_name |
---|---|
1 | Finanzen |
2 | Technik |
3 | Wirtschaft |
Wenn Sie MySQL verwenden, können Sie diese Tabelle mit der folgenden Abfrage erstellen:
CREATE TABLE `Abteilung` (
`Abteilung_id` int,
abteilung_name` varchar(255),
PRIMARY KEY (`abteilungs_id`)
);
Fügen Sie Daten in die von Ihnen erstellte Tabelle ein, indem Sie das folgende SQL verwenden:
INSERT INTO abteilung VALUES (1, 'Finanzen');
INSERT INTO abteilung VALUES (2, 'Technik');
INSERT INTO abteilung VALUES (3, 'Wirtschaft');
mitarbeiter_id | mitarbeiter_name | abteilung_id |
---|---|---|
100 | John | 3 |
101 | Maria | 1 |
102 | Natalja | 3 |
103 | Bruce | 2 |
Nachdem Sie die Tabelle ” Abteilung"
erstellt und mit Daten gefüllt haben, erstellen Sie die Tabelle “Mitarbeiter "
mit der folgenden MySQL-Abfrage:
CREATE TABLE `Mitarbeiter` (
`Mitarbeiter_id` INT,
`Mitarbeiter_name` VARCHAR(255),
`Abteilung_id` INT,
FOREIGN KEY (`Abteilung_id`) REFERENCES Abteilung(Abteilung_id)
);
Als nächstes fügen Sie die Datensätze der Mitarbeiter in Ihre Tabelle ein. Da die Spalte abteilungs_id einen Fremdschlüsselbezug zur Tabelle abteilung
hat, können Sie keine abteilungs_id einfügen, die in der anderen Tabelle nicht vorhanden ist.
INSERT INTO employee VALUES (100, 'John', 3);
INSERT INTO mitarbeiter VALUES (101, 'Maria', 1);
INSERT INTO mitarbeiter VALUES (102, 'Natalya', 3);
INSERT INTO mitarbeiter VALUES (103, 'Bruce', 1);
Abfrage Ihrer Datenbanktabellen
Lassen Sie uns die Tabellen in einer Datenbankabfrage verwenden. Nehmen wir den Fall an, dass Sie für alle Mitarbeiter die Mitarbeiter-ID, den Mitarbeiternamen und den Abteilungsnamen abfragen müssen. In diesem Fall müssen Sie beide Tabellen verwenden und sie über die gemeinsame Spalte abteilungs_id verknüpfen. Ihre Abfrage lautet also wie folgt:
SELECT
mitarbeiter_id,
mitarbeiter_name,
abteilungs_name
FROM
mitarbeiter,
abteilung
WHERE
mitarbeiter.abteilungs_id = abteilung.abteilungs_id;
Erstellen Sie Ihre SQL-Ansicht
Nun kann es vorkommen, dass Sie diese Daten häufig nachschlagen oder referenzieren. Hinzu kommt, dass mit der Zeit, je mehr Datensätze sich in Ihren Tabellen befinden, Ihre Abfragezeit immer länger wird. In einem solchen Szenario können Sie die SQL-Ansicht erstellen, die dieser Abfrage entspricht.
Verwenden Sie die folgende Abfrage, um eine Ansicht namens employee_info
zu erstellen:
CREATE VIEW mitarbeiter_info AS
SELECT
mitarbeiter_id,
mitarbeiter_name,
abteilungs_name
FROM
mitarbeiter,
abteilung
WHERE
mitarbeiter.abteilungs_id = abteilung.abteilungs_id;
Mit dieser Ansicht können Sie dieselbe direkt abfragen. Ihre Abfrage wird somit vereinfacht zu:
SELECT
*
FROM
mitarbeiter_info;
Wenn Sie die SQL-Ansicht abfragen, erhalten Sie die gleiche Ausgabe wie bei Ihrer ursprünglichen Abfrage. Allerdings ist Ihre Abfrage jetzt einfacher zu pflegen. Der View verbirgt die Komplexität Ihrer Abfrage, ohne das Ergebnis oder die Leistung zu beeinträchtigen.
Wie kann man SQL-Views ersetzen?
Wenn Sie eine Ansicht mit einem bestimmten Namen haben und diese ändern oder ersetzen möchten, verwenden Sie den Befehl CREATE OR REPLACE VIEW
. Damit können Sie die SELECT-Anweisung ändern, die zur Erstellung der Ansicht verwendet wurde. Ihre View-Ausgabe wird also ersetzt, während der Name der View erhalten bleibt. Außerdem erstellen Sie einen neuen SQL-View, wenn dieser noch nicht existiert.
Sie können SQL-Views mit der folgenden Syntax ersetzen:
CREATE OR REPLACE VIEW view_name AS
SELECT
new_column_1,
new_column_2,
neue_spalte_3 ...
FROM
neue_tabelle_name_1,
neue_tabelle_name_2 ...
WHERE
new_condition_clause
Sie können dies anhand eines Beispiels besser verstehen. Nehmen wir die Tabellen Abteilung
und Mitarbeiter
. Aus ihnen wird eine SQL-Ansicht employee_info
erstellt, die die Spalten employee_id, employee_name und department_name enthält.
Aus Sicherheitsgründen möchten Sie vielleicht die Spalte employee_id aus dieser Ansicht entfernen. Außerdem sollten Sie die Spaltennamen ändern, um die tatsächlichen Datenbankspalten zu verbergen. Sie können diese Änderungen an der bestehenden Ansicht mit der folgenden SQL-Abfrage vornehmen:
CREATE OR REPLACE VIEW employee_info AS
SELECT
mitarbeiter_name as name,
abteilung_name as abteilung
FROM
mitarbeiter,
abteilung
WHERE
mitarbeiter.abteilungs_id = abteilung.abteilungs_id;
Sobald die Ansicht ersetzt wurde, erhalten Sie andere Ergebnisse, wenn Sie die gleiche Abfrage wie zuvor verwenden. Im Abfrageergebnis werden Sie zum Beispiel feststellen, dass eine der Spalten weggefallen ist. Darüber hinaus wurden die Spaltennamen von employee_name und department_name in name bzw. department geändert.
Nutzen Sie die Vorteile der Erstellung von SQL-Ansichten
Durch die Erstellung von SQL-Ansichten erhalten Sie nicht nur vereinfachte Abfragen und eine schnellere Suche nach Daten, sondern auch Sicherheit und Schutz vor Schemaänderungen. Das Erstellen von SQL-Ansichten ist ganz einfach. Sie können jede bestehende Abfrage in einen SQL-View umwandeln.
Verwenden Sie die obige Schritt-für-Schritt-Anleitung, um SQL-Ansichten zu erstellen und deren Vorteile zu nutzen. Mit SQL-Views können Sie Ihre Datenbankanwendungen einfach und sicher gestalten und gleichzeitig deren Leistung steigern.
Wenn Sie Ihren SQL-Server selbst verwalten möchten, sollten Sie sich das SQL Server Management Studio (SSMS) ansehen.