Was sind Ansichten in MySQL?
ANSICHTEN sind virtuelle Tabellen, die keine eigenen Daten speichern, sondern Daten anzeigen, die in anderen Tabellen gespeichert sind. Mit anderen Worten, VIEWS sind nichts anderes als SQL-Abfragen. Eine Ansicht kann alle oder einige Zeilen einer Tabelle enthalten. Eine MySQL-Ansicht kann Daten aus einer oder mehreren Tabellen anzeigen.
MySQL Views-Syntax
Schauen wir uns nun die grundlegende Syntax an, mit der eine Ansicht in MySQL erstellt wird.
CREATE VIEW `view_name` AS SELECT statement;
WO
- "CREATE VIEW` view_name` " weist den MySQL-Server an, ein Ansichtsobjekt in der Datenbank mit dem Namen` view_name` zu erstellen
- "AS SELECT-Anweisung" sind die SQL-Anweisungen, die in die MySQL-Ansichten gepackt werden sollen. Es kann sich um eine SELECT-Anweisung handeln, die Daten aus einer Tabelle oder mehreren Tabellen enthalten kann.
So erstellen Sie Ansichten in MySQL
Es folgt ein schrittweiser Prozess zum Erstellen einer Ansicht in MySQL:
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 Autorisierungsanforderungen besagen, dass die Buchhaltungsabteilung nur die Nummer, den Namen und das Geschlecht des Mitglieds in der Tabelle des Mitglieds sehen kann. Um dies zu erreichen, können Sie eine ANSICHT erstellen -
CREATE VIEW `accounts_v_members` AS SELECT `membership_number`,`full_names`,`gender` FROM `members`;
Wenn Sie das obige Skript in der MySQL-Workbench für die myflixdb ausführen und den Ansichtsknoten im Datenbank-Explorer erweitern, erhalten Sie die folgenden Ergebnisse.
Beachten Sie, dass das Objekt accounts_v_members jetzt in den Objekten der Datenbankansichten sichtbar ist. Führen Sie nun eine SELECT-Anweisung aus, die alle Felder aus der Ansicht auswählt, wie im folgenden Beispiel für eine MySQL-Erstellungsansicht gezeigt.
SELECT * FROM `accounts_v_members`;
Wenn Sie das obige Skript in der MySQL-Workbench gegen myflixdb ausführen, erhalten Sie die folgenden 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 autorisierten Spalten für die Buchhaltung zurückgegeben. Andere Details in 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 werden.
Verknüpfungen und Ansichten in MySQL
Schauen wir uns nun ein ziemlich komplexes Beispiel an, das mehrere Tabellen umfasst und Verknüpfungen verwendet.
Wir werden den erstellten JOIN verpacken, der Informationen aus drei (3) Tabellen erhält, nämlich Mitglieder, Filme und Filmverleih. Unten finden Sie das Skript, mit dem wir dies erreichen können.
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 Ausführen der obigen Skripte wird die Ansicht general_v_movie_rentals in unserer myflixdb erstellt
Wählen wir nun alle Felder aus einer Tabelle mit dem Namen general_v_movie_rentals aus.
SELECT * FROM `general_v_movie_rentals`;
Wenn Sie das obige Skript in der MySQL-Workbench für die myflixdb ausführen, erhalten Sie die folgenden 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 in einer regulären SELECT-Anweisung einfach wie jede andere gewöhnliche Tabelle verwendet. Die Ansicht kann von überall im Anwendungssystem aufgerufen werden, das auf der myflixdb ausgeführt wird.
Ansichten in MySQL löschen
Mit dem Befehl DROP können Sie eine Ansicht löschen, die nicht mehr benötigt wird. Die grundlegende Syntax zum Löschen einer Ansicht lautet wie folgt.
DROP VIEW ` general_v_movie_rentals `;
Warum Ansichten verwenden?
Möglicherweise möchten Sie Ansichten hauptsächlich aus den folgenden drei Gründen verwenden
- Letztendlich werden Sie Ihre SQL-Kenntnisse verwenden, um Anwendungen zu erstellen, die eine Datenbank für Datenanforderungen verwenden. Es wird empfohlen, VIEWS der ursprünglichen Tabellenstruktur in Ihrer Anwendung zu verwenden, anstatt die Tabellen selbst zu verwenden. Auf diese Weise wird sichergestellt, dass Ihr Legacy-Code beim Umgestalten Ihrer Datenbank das ursprüngliche Schema über die Ansicht anzeigt, ohne die Anwendung zu beschädigen.
- ANSICHTEN 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 einzelne Abfragezeile umgewandelt. Solch komprimierter Code lässt sich leichter in Ihre Anwendung integrieren. Dadurch werden Tippfehler vermieden und Ihr Code ist besser lesbar.
- VIEWS helfen bei der Datensicherheit. Sie können Ansichten verwenden, um Benutzern nur autorisierte Informationen anzuzeigen und vertrauliche Daten wie Kreditkartennummern auszublenden.
Zusammenfassung
- Ansichten sind virtuelle Tabellen. Sie enthalten nicht die zurückgegebenen Daten. Die Daten werden in den Tabellen gespeichert, auf die in der SELECT-Anweisung verwiesen wird.
- Ansichten verbessern die Sicherheit der Datenbank, indem autorisierten Benutzern nur die beabsichtigten Daten angezeigt werden. Sie verbergen sensible Daten.
- Ansichten erleichtern das Leben, da Sie nicht immer wieder komplexe Abfragen schreiben müssen.
- Es ist möglich, INSERT, UPDATE und DELETE in einer VIEW zu verwenden. Diese Operationen ändern die zugrunde liegenden Tabellen der VIEW. Die einzige Überlegung ist, dass VIEW alle NOT NULL-Spalten der Tabellen enthalten sollte, auf die es verweist. Idealerweise sollten Sie VIEWS nicht zum Aktualisieren verwenden.