In MySQL, a
View ist eine virtuelle Tabelle basierend auf der Ergebniseinstellung einer SQL-Anweisung. Es speichert keine Daten direkt. Stattdessen speichert es die * Abfrage *, die definiert, wie die Daten abgerufen werden. Wenn Sie eine Ansicht abfragen, führt MySQL die zugrunde liegende Abfrage aus und gibt das Ergebnis so zurück, als wäre es eine echte Tabelle.
Betrachten Sie es als eine gespeicherte Anfrage.
Hier ist eine Aufschlüsselung der wichtigsten Aspekte:
Schlüsselmerkmale und Eigenschaften von MySQL -Ansichten:
* Virtuelle Tabelle: Eine Ansicht ist keine physische Tabelle. Es nimmt keinen Speicherplatz ein, um Daten zu speichern. Es ist nur eine Definition einer Abfrage.
* basierend auf einer Abfrage: Eine Ansicht wird mit einer Anweisung "Create View" erstellt, die eine `select` -Anweisung enthält. Diese `select` -Anweisung gibt an, wie die Ansicht die Daten abrufen und darstellen soll.
* Datenableitung: Ansichten leiten ihre Daten von einer oder mehreren zugrunde liegenden Basistabellen (oder anderen Ansichten) ab.
* Dynamische Daten: Die durch eine Ansicht angezeigten Daten sind immer aktuell. Wenn Sie eine Ansicht abfragen, wird die zugrunde liegende Abfrage erneut ausgeführt. Dies stellt sicher, dass Sie die neuesten Daten aus den Basistabellen sehen.
* Ansichten abfragen: Sie können eine Ansicht abfragen, wie Sie eine reguläre Tabelle mit `select` -Anweisungen abfragen würden.
* aktualisierbar gegen nicht-updatable: Einige Ansichten sind aktualisierbar, dh Sie können Anweisungen "Insert", "Update" und "Delete" verwenden, um die zugrunde liegenden Daten über die Ansicht zu ändern. Viele Ansichten sind jedoch nicht aktualisierbar, insbesondere solche, die Aggregationen, Zusammenhänge oder berechnete Spalten umfassen.
* Privilegien: Sie können Berechtigungen zu Ansichten gewähren und widerrufen, ähnlich wie Sie die Berechtigung für Tabellen verwalten.
Vorteile der Verwendung von Ansichten:
* Datenabstraktion: Ansichten verbergen die Komplexität der zugrunde liegenden Tabellen und Abfragen. Sie können Ansichten erstellen, die nur die relevanten Spalten bestimmten Benutzern oder Anwendungen vorstellen.
* Sicherheit: Ansichten können den Zugriff auf bestimmte Spalten oder Zeilen einer Tabelle einschränken. Sie können Benutzern Zugriff auf eine Ansicht gewähren, die nur eine Teilmenge der Daten anzeigt, ohne ihnen direkten Zugriff auf die zugrunde liegende Tabelle zu gewähren.
* Vereinfachung komplexer Abfragen: Mit Ansichten können Sie komplexe Abfragen in kleinere, überschaubare Stücke zerlegen. Sie können für jeden Schritt des Prozesses eine Ansicht erstellen und diese Ansichten dann kombinieren, um das Endergebnis zu erhalten.
* Datenkonsistenz: Wenn Sie die gleiche Abfrage an mehreren Stellen verwenden müssen, können Sie sie als Ansicht definieren. Dies stellt sicher, dass die Abfrage über alle Verwendungen hinweg konsistent ist. Wenn Sie die Abfrage ändern müssen, müssen Sie die Ansichtsdefinition nur ändern.
* Code -Wiederverwendbarkeit: Ansichten umfassen Abfragen und ermöglichen es Ihnen, sie über verschiedene Anwendungen oder Berichte hinweg wiederzuverwenden.
* Spalten umbenennen: Mit Ansichten können Sie Spalten aus den zugrunde liegenden Tabellen umbenennen und beschreibendere oder benutzerfreundlichere Namen geben.
Beispiel:
Nehmen wir an, Sie haben eine Tabelle namens "Mitarbeiter" mit den folgenden Spalten:
* `Employee_id`
* `first_name`
* `last_name`
* `Abteilung"
* "Gehalt"
Sie können eine Ansicht namens "Manager" erstellen, in der nur die Mitarbeiter, die Manager sind, und deren vollständige Name zeigt:
`` `SQL
Erstellen Sie Ansichtsmanager als
WÄHLEN
Mitarbeiter_id,
Concat (first_name, '', last_name) als full_name,
Abteilung,
Gehalt
AUS
Mitarbeiter
WO
Abteilung ='Management';
`` `
Jetzt können Sie die Ansicht von "Managern" wie folgt abfragen:
`` `SQL
Wählen Sie * von Managern aus;
`` `
Dies gibt nur die Mitarbeiter zurück, die in der Abteilung "Management" zusammen mit ihrem Ausweis, dem vollständigen Namen (berechnet aus dem ersten und nach Namen), der Abteilung und dem Gehalt. Sie müssen nicht die "concat` -Funktion oder die" Where "-Klausel jedes Mal wiederholen, wenn Sie diese Informationen sehen möchten.
Ansicht erstellen:
`` `SQL
Erstellen Sie Ansicht anzeigen_name als
Wählen Sie Spalte1, Spalte2, ...
Aus table_name
Wo Zustand;
`` `
eine Ansicht fallen lassen:
`` `SQL
Drop View View_name;
`` `
Wichtige Überlegungen:
* Leistung: Während Ansichten viele Vorteile bieten, können sie manchmal die Leistung beeinflussen, wenn die zugrunde liegende Abfrage komplex ist. MySQL muss die Abfrage jedes Mal ausführen, wenn die Ansicht zugegriffen wird. Erwägen Sie, materialisierte Ansichten (falls von Ihrer MySQL -Version oder Ihrem Setup unterstützt) zu verwenden oder die Abfrage sorgfältig zu optimieren, wenn die Leistung zu einem Problem wird.
* Updatabilitätsbeschränkungen: Nicht alle Ansichten sind aktualisierbar. Ansichten mit Joins, Aggregationen (z. B. `sum`,` avg`), `chary`,` gruppe by` oder bestimmten Unterabfragen sind in der Regel nicht aktualisierbar. MySQL gibt Ihnen häufig einen Fehler, wenn Sie versuchen, eine nicht-updatable Ansicht zu ändern.
* Abhängigkeiten: Ansichten sind von den zugrunde liegenden Tabellen abhängig. Wenn Sie eine von einer Ansicht verwendete Tabelle fallen oder ändern, kann die Ansicht ungültig werden.
Zusammenfassend sind Ansichten ein leistungsstarkes Tool in MySQL zur Vereinfachung von Abfragen, zur Verbesserung der Datenabstraktion und zur Verbesserung der Sicherheit. Sie bieten eine Möglichkeit, virtuelle Tabellen zu erstellen, die Daten auf angepasste und wiederverwendbare Weise darstellen. Denken Sie daran, Updatabilitäts- und Leistungsauswirkungen beim Entwerfen und Verwenden von Ansichten zu berücksichtigen.