MySQL Views: How to Create View from Tables

โšก Intelligente Zusammenfassung

MySQL Views are virtual tables that store no data of their own and instead present the result of a stored SELECT query. This resource explains how to create, query, join, and drop views, with runnable examples from the myflixdb database.

  • ๐Ÿงฑ Kerndefinition: A view is a named SELECT statement that behaves like a table but holds no data.
  • ๐Ÿ” Sicherheitsvorteil: Views expose only the authorized columns and keep sensitive fields hidden from users.
  • โ™ป๏ธ Reusability Benefit: A complex multi-table JOIN is written once and reused as a single-line SELECT.
  • ๏ธ Creation Syntax: CREATE VIEW `view_name` AS SELECT statement defines the view inside the database.
  • ๐Ÿ—‘๏ธ Lifecycle Commands: SHOW CREATE VIEW reveals the stored query, and DROP VIEW deletes it without touching the base tables.

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?

Before building one, it helps to know what a view actually buys you.

Sie mรถchten Ansichten mรถglicherweise vor allem aus den folgenden 3 Grรผnden verwenden

  • Ultimately, you will use your SQL knowledge, to create applications, which will use a database for data requirements. Itโ€™s recommended that you use VIEWS of the original table structure in your application instead of using the tables themselves. This ensures that when you refactor your DB, your legacy code will see the original schema via the view without breaking the application.
  • 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

With the syntax and the benefits established, the steps below build a working view end to end.

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.

Suppose authorization requirements state that the accounts department can only see memberโ€™s number, name and gender from the memberโ€™s table. To achieve this you can create a VIEW โ€“

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

Only the authorized columns for accounts department have been returned. Other details found in the members table have been hidden.

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

A single-table view is the simplest case. Views become far more valuable when they wrap a multi-table query.

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 a view removes only the stored query; the underlying tables and their data are untouched.

Hรคufig gestellte Fragen

Sometimes. INSERT, UPDATE and DELETE work only on simple views containing every NOT NULL column of the base table. Views built on joins or aggregate functions are not updatable.

A table physically stores rows on disk. A view stores only a SELECT statement and rebuilds its rows on every query, so it always reflects current data in the base tables.

No. A view runs its underlying SELECT on every call, so performance matches the original query. MySQL has no materialized views, and speed still depends on base-table indexes.

Yes. AI assistants in tools such as MySQL Werkbank can draft a CREATE VIEW statement from a description. Verify the column list and join keys before running it.

Partly. AI can flag sensitive columns, such as card numbers, and propose a safer column list. The final decision must still follow your organisationโ€™s data access policy.

Fassen Sie diesen Beitrag mit folgenden Worten zusammen: