MySQL Ansichten: So erstellen Sie eine Ansicht aus Tabellen

⚡ Intelligente Zusammenfassung

MySQL Views sind virtuelle Tabellen, die keine eigenen Daten speichern, sondern das Ergebnis einer gespeicherten SELECT-Abfrage darstellen. Diese Ressource erklärt anhand von ausführbaren Beispielen aus der Datenbank myflixdb, wie man Views erstellt, abfragt, verknüpft und löscht.

  • 🧱 Kerndefinition: Eine View ist eine benannte SELECT-Anweisung, die sich wie eine Tabelle verhält, aber keine Daten enthält.
  • 🔐 Sicherheitsvorteil: Die Ansichten zeigen nur die autorisierten Spalten an und halten sensible Felder vor den Benutzern verborgen.
  • ♻️ Vorteil der Wiederverwendbarkeit: Ein komplexer JOIN über mehrere Tabellen wird einmal geschrieben und als einzeilige SELECT-Anweisung wiederverwendet.
  • Erstellungssyntax: Die Anweisung CREATE VIEW `view_name` AS SELECT definiert die Ansicht innerhalb der Datenbank.
  • 🗑️ Lebenszyklusbefehle: SHOW CREATE VIEW zeigt die gespeicherte Abfrage an, und DROP VIEW löscht sie, ohne die Basistabellen zu verändern.

MySQL Aufrufe

Was sind Ansichten in? MySQL?

ANSICHTEN sind virtuelle Tabellen, die keine eigenen Daten speichern, sondern in anderen Tabellen gespeicherte Daten anzeigen. Mit anderen Worten: VIEWS sind nichts anderes als SQL-Abfragen. Eine Ansicht kann alle oder einige Zeilen einer Tabelle enthalten. A MySQL Die Ansicht kann Daten aus einer oder mehreren Tabellen anzeigen.

MySQL Syntax der Ansichten

Schauen wir uns nun die grundlegende Syntax an, die zum Erstellen einer Ansicht verwendet wird MySQL.

CREATE VIEW `view_name` AS SELECT statement;

WO

  • „ANSICHT „Ansichtsname“ ERSTELLEN“ erzählt MySQL Server, um in der Datenbank ein Ansichtsobjekt mit dem Namen „view_name“ zu erstellen
  • „AS SELECT-Anweisung“ sind die SQL-Anweisungen, die in gepackt werden sollen MySQL Ansichten. Es kann sich um eine SELECT-Anweisung handeln, die Daten aus einer oder mehreren Tabellen enthalten kann.

Warum Ansichten verwenden?

Bevor man sich für den Bau einer solchen Aussicht entscheidet, ist es hilfreich zu wissen, was man dafür eigentlich bekommt.

Sie möchten Ansichten möglicherweise vor allem aus den folgenden 3 Gründen verwenden

  • Letztendlich werden Sie Ihre SQL Kenntnisse sind erforderlich, um Anwendungen zu erstellen, die eine Datenbank für ihre Datenanforderungen nutzen. Es wird empfohlen, in Ihrer Anwendung Ansichten (VIEWs) der ursprünglichen Tabellenstruktur zu verwenden, anstatt die Tabellen selbst zu nutzen. Dadurch wird sichergestellt, dass Ihr bestehender Code beim Refactoring Ihrer Datenbank das ursprüngliche Schema über die Ansicht weiterhin sieht, ohne die Anwendung zu beeinträchtigen.
  • VIEWS erhöhen die Wiederverwendbarkeit. Sie müssen keine komplexen Abfragen mit wiederholten Verknüpfungen erstellen. Die gesamte Komplexität wird mithilfe von VIEWS in eine einzige Abfragezeile umgewandelt. Derart komprimierter Code lässt sich leichter in Ihre Anwendung integrieren. Dadurch wird die Wahrscheinlichkeit von Tippfehlern eliminiert und Ihr Code wird besser lesbar.
  • VIEWS helfen bei der Datensicherheit. Sie können Ansichten verwenden, um Benutzern nur autorisierte Informationen anzuzeigen und vertrauliche Daten wie Kreditkartennummern zu verbergen.

So erstellen Sie Ansichten in MySQL

Nachdem Syntax und Vorteile erläutert wurden, ergeben die folgenden Schritte eine vollständig funktionierende Ansicht.

Nachfolgend finden Sie eine Schritt-für-Schritt-Anleitung zum Erstellen einer Ansicht in MySQL:

Schritt 1) Erstellen Sie unsere erste Ansicht mit „myflixdb“

Lassen Sie uns nun unsere erste Ansicht mit „myflixdb“ erstellen. Wir erstellen eine einfache Ansicht, die die in der Mitgliedertabelle angezeigten Spalten einschränkt.

Angenommen, die Berechtigungsanforderungen besagen, dass die Buchhaltung aus der Mitgliedertabelle nur die Mitgliedsnummer, den Namen und das Geschlecht einsehen darf. Um dies zu erreichen, können Sie eine Ansicht erstellen –

CREATE VIEW `accounts_v_members` AS SELECT `membership_number`,`full_names`,`gender` FROM `members`;

Schritt 2) Erweitern des Knotens „Ansichten“.

Ausführen des obigen Skripts in MySQL Workbench gegen MyflixDB und Erweitern des Ansichtsknotens im Datenbank-Explorer erhalten wir die folgenden Ergebnisse.

Ansichten erstellen in MySQL

Beachten Sie, dass das Objekt „accounts_v_members“ jetzt in den Datenbankansichtsobjekten sichtbar ist.

Schritt 3) Führen Sie eine SELECT-Anweisung aus

Lassen Sie uns nun a ausführen SELECT-Anweisung Dadurch werden alle Felder aus der Ansicht ausgewählt, wie unten gezeigt MySQL Beispielansicht erstellen.

SELECT * FROM `accounts_v_members`;

Schritt 4) Führen Sie ein Skript aus

Ausführen des obigen Skripts in MySQL Workbench gegen Myflixdb liefert uns die folgenden, unten gezeigten Ergebnisse.

membership_number full_names gender
1 Janet Jones Female
2 Janet Smith Jones Female
3 Robert Phil Male
4 Gloria Williams Female
5 Leonard Hofstadter Male
6 Sheldon Cooper Male
7 Rajesh Koothrappali Male
8 Leslie Winkle Male
9 Howard Wolowitz Male

Es wurden nur die für die Buchhaltungsabteilung relevanten Spalten angezeigt. Alle anderen Details aus der Mitgliedertabelle wurden ausgeblendet.

Wenn wir die SQL-Anweisungen sehen möchten, aus denen eine bestimmte Ansicht besteht, können wir dazu das unten gezeigte Skript verwenden.

SHOW CREATE VIEW `accounts_v_members`;

Wenn Sie das obige Skript ausführen, erhalten Sie den Ansichtsnamen und die SQL-SELECT-Anweisungen, die zum Erstellen der Ansicht verwendet wurden.

Beitritte und Ansichten in MySQL

Eine Ansicht mit nur einer Tabelle ist der einfachste Fall. Ansichten gewinnen jedoch deutlich an Wert, wenn sie eine Abfrage mit mehreren Tabellen umschließen.

Schauen wir uns nun ein ziemlich komplexes Beispiel an, das mehrere Tabellen beinhaltet und verwendet verbindet.

Wir werden den erstellten JOIN verpacken, der Informationen aus drei (3) Tabellen erhält, nämlich Mitglieder, Filme und Filmverleih. Nachfolgend finden Sie das Skript, das uns dabei hilft.

CREATE VIEW `general_v_movie_rentals` AS SELECT mb.`membership_number`,mb.`full_names`,mo.`title`,mr.`transaction_date`,mr.`return_date`
FROM `movierentals` AS mr
INNER JOIN `members` AS mb ON mr.`membership_number` = mb.`membership_number`
INNER JOIN `movies` AS mo ON mr.`movie_id` = mo.`movie_id`;

Durch das Ausführen der oben genannten Skripte wird die Ansicht „general_v_movie_rentals“ in unserer myflixdb erstellt

Wählen wir nun alle Felder aus einer Tabelle namens general_v_movie_rentals aus.

SELECT * FROM `general_v_movie_rentals`;

Ausführen des obigen Skripts in MySQL Werkbank gegen myflixdb liefert uns die unten dargestellten Ergebnisse.

membership_number full_names title transaction_date return_date
1 Janet Jones Pirates of the Caribean 4 20-06-2012 28-06-2012
1 Janet Jones Forgetting Sarah Marshal 22-06-2012 25-06-2012
3 Robert Phil Forgetting Sarah Marshal 22-06-2012 25-06-2012
2 Janet Smith Jones Forgetting Sarah Marshal 21-06-2012 24-06-2012
3 Robert Phil X-Men 23-06-2012 28-06-2012

Beachten Sie, dass wir die komplexe JOIN-Abfrage nicht schreiben mussten, um Informationen zu Mitgliedern, Filmen und Filmverleihdetails zu erhalten. Wir haben die Ansicht einfach in einer regulären SELECT-Anweisung wie jede andere normale Tabelle verwendet. Die Ansicht kann von überall im Anwendungssystem aufgerufen werden, das auf myflixdb läuft.

Dropping Ansichten ein MySQL

Mit dem DROP-Befehl kann eine Ansicht aus dem gelöscht werden Datenbank das ist nicht mehr erforderlich. Die grundlegende Syntax zum Löschen einer Ansicht lautet wie folgt.

DROP VIEW `general_v_movie_rentals`;

Dropping Eine Ansicht entfernt lediglich die gespeicherte Abfrage; die zugrunde liegenden Tabellen und deren Daten bleiben unberührt.

Häufig gestellte Fragen

Manchmal. INSERT, UPDATE und DELETE funktionieren nur bei einfachen Sichten, die alle NOT NULL-Spalten der Basistabelle enthalten. Sichten, die auf Joins oder Aggregatfunktionen basieren, können nicht aktualisiert werden.

Eine Tabelle speichert Zeilen physisch auf der Festplatte. Eine Ansicht speichert lediglich eine SELECT-Anweisung und erstellt ihre Zeilen bei jeder Abfrage neu, sodass sie immer die aktuellen Daten in den Basistabellen widerspiegelt.

Nein. Eine Ansicht führt bei jedem Aufruf ihre zugrunde liegende SELECT-Anweisung aus, sodass die Leistung der ursprünglichen Abfrage entspricht. MySQL verfügt über keine materialisierten Sichten, und die Geschwindigkeit hängt weiterhin von den Basistabellenindizes ab.

Ja. KI-Assistenten in Tools wie MySQL Werkbank Sie können anhand einer Beschreibung eine CREATE VIEW-Anweisung erstellen. Überprüfen Sie die Spaltenliste und die Join-Schlüssel, bevor Sie die Anweisung ausführen.

Teilweise. KI kann sensible Spalten, wie z. B. Kartennummern, kennzeichnen und eine sicherere Spaltenliste vorschlagen. Die endgültige Entscheidung muss jedoch weiterhin den Datenschutzrichtlinien Ihres Unternehmens entsprechen.

Fassen Sie diesen Beitrag mit folgenden Worten zusammen: