So erstellen Sie eine Ansicht in MySQL

So erstellen Sie eine Ansicht in MySQL

Grundlegende Syntax

Sie können eine Ansicht mit der Anweisung CREATE VIEW erstellen.

Das Syntaxformat ist wie folgt:

CREATE VIEW <Ansichtsname> AS <SELECT-Anweisung>

Die Syntax wird unten beschrieben.

  • <Ansichtsname>: Gibt den Namen der Ansicht an. Der Name muss in der Datenbank eindeutig sein und darf nicht mit dem Namen einer anderen Tabelle oder Ansicht identisch sein.
  • <SELECT-Anweisung>: Gibt die SELECT-Anweisung zum Erstellen einer Ansicht an, mit der mehrere Basistabellen oder Quellansichten abgefragt werden können.

Für die Angabe der SELECT-Anweisung beim Erstellen einer View gelten folgende Einschränkungen:

  • Zusätzlich zum CREATE VIEW-Privileg verfügt der Benutzer auch über Berechtigungen für die Basistabellen und andere Ansichten, die an der Operation beteiligt sind.
  • SELECT-Anweisungen können nicht auf System- oder Benutzervariablen verweisen.
  • Eine SELECT-Anweisung kann keine Unterabfrage in der FROM-Klausel enthalten.
  • Eine SELECT-Anweisung kann nicht auf vorbereitete Anweisungsparameter verweisen.

In einer Ansichtsdefinition referenzierte Tabellen oder Ansichten müssen vorhanden sein. Nachdem Sie eine Ansicht erstellt haben, können Sie jedoch die Tabellen oder Ansichten löschen, auf die die Definition verweist. Mit der Anweisung CHECK TABLE können Sie Ansichtsdefinitionen auf solche Probleme überprüfen.

ORDER BY-Anweisungen sind in Ansichtsdefinitionen zulässig. Wenn Sie jedoch aus einer bestimmten Ansicht auswählen und diese Ansicht ihre eigene ORDER BY-Anweisung verwendet, wird das ORDER BY in der Ansichtsdefinition ignoriert.

Auf TEMPORARY-Tabellen (temporäre Tabellen) kann in Ansichtsdefinitionen nicht verwiesen werden, und es können keine TEMPORARY-Ansichten erstellt werden.

WITH CHECK OPTION bedeutet, dass beim Ändern der Ansicht überprüft wird, ob die eingefügten Daten die von WHERE festgelegten Bedingungen erfüllen.

Erstellen einer Ansicht basierend auf einer einzelnen Tabelle

MySQL kann Ansichten für eine einzelne Tabelle erstellen.

Sehen Sie sich die Daten der Tabelle tb_students_info in der Datenbank test_db an, wie unten gezeigt.

mysql> AUSWÄHLEN * VON tb_students_info;
+----+--------+------+------+---------+--------+------------+
| ID | Name | Abteilungs-ID | Alter | Geschlecht | Größe | Anmeldedatum |
+----+--------+------+------+---------+--------+------------+
| 1 | Dany | 1 | 25 | F | 160 | 10.09.2015 |
| 2 | Grün | 3 | 23 | F | 158 | 22.10.2016 |
| 3 | Henry | 2 | 23 | M | 185 | 31.05.2015 |
| 4 | Jane | 1 | 22 | F | 162 | 20.12.2016 |
| 5 | Jim | 1 | 24 | M | 175 | 15.01.2016 |
| 6 | Johannes | 2 | 21 | M | 172 | 11.11.2015 |
| 7 | Lily | 6 | 22 | F | 165 | 26.02.2016 |
| 8 | Susan | 4 | 23 | F | 170 | 01.10.2015 |
| 9 | Thomas | 3 | 22 | M | 178 | 07.06.2016 |
| 10 | Tom | 4 | 23 | M | 165 | 05.08.2016 |
+----+--------+------+------+---------+--------+------------+
10 Zeilen im Satz (0,00 Sek.)

【Beispiel 1】

Erstellen Sie eine Ansicht mit dem Namen view_students_info in der Tabelle tb_students_info. Die eingegebene SQL-Anweisung und das Ausführungsergebnis lauten wie folgt.

mysql> CREATE VIEW view_students_info
  -> ALS AUSWAHL * AUS tb_students_info;
Abfrage OK, 0 Zeilen betroffen (0,00 Sek.)
mysql> AUSWÄHLEN * VON view_students_info;
+----+--------+------+------+---------+--------+------------+
| ID | Name | Abteilungs-ID | Alter | Geschlecht | Größe | Anmeldedatum |
+----+--------+------+------+---------+--------+------------+
| 1 | Dany | 1 | 25 | F | 160 | 10.09.2015 |
| 2 | Grün | 3 | 23 | F | 158 | 22.10.2016 |
| 3 | Henry | 2 | 23 | M | 185 | 31.05.2015 |
| 4 | Jane | 1 | 22 | F | 162 | 20.12.2016 |
| 5 | Jim | 1 | 24 | M | 175 | 15.01.2016 |
| 6 | Johannes | 2 | 21 | M | 172 | 11.11.2015 |
| 7 | Lily | 6 | 22 | F | 165 | 26.02.2016 |
| 8 | Susan | 4 | 23 | F | 170 | 01.10.2015 |
| 9 | Thomas | 3 | 22 | M | 178 | 07.06.2016 |
| 10 | Tom | 4 | 23 | M | 165 | 05.08.2016 |
+----+--------+------+------+---------+--------+------------+
10 Zeilen im Satz (0,04 Sek.)

Standardmäßig sind die Felder der erstellten Ansicht dieselben wie die der Basistabelle. Sie können eine Ansicht auch erstellen, indem Sie den Namen des Ansichtsfelds angeben.

【Beispiel 2】

Erstellen Sie eine Ansicht mit dem Namen v_students_info in der Tabelle tb_students_info. Die eingegebene SQL-Anweisung und das Ausführungsergebnis sind wie folgt.

mysql> CREATE VIEW v_students_info
  -> (s_id,s_name,d_id,s_alter,s_geschlecht,s_größe,s_datum)
  -> AS SELECT ID, Name, Abteilungs-ID, Alter, Geschlecht, Größe, Anmeldedatum
  -> VON tb_students_info;
Abfrage OK, 0 Zeilen betroffen (0,06 Sek.)
mysql> AUSWÄHLEN * VON v_students_info;
+------+--------+------+-------+----------+----------+----------+------------+
| s_id | s_name | d_id | s_alter | s_geschlecht | s_größe | s_datum |
+------+--------+------+-------+----------+----------+----------+------------+
| 1 | Dany | 1 | 24 | F | 160 | 10.09.2015 |
| 2 | Grün | 3 | 23 | F | 158 | 22.10.2016 |
| 3 | Henry | 2 | 23 | M | 185 | 31.05.2015 |
| 4 | Jane | 1 | 22 | F | 162 | 20.12.2016 |
| 5 | Jim | 1 | 24 | M | 175 | 15.01.2016 |
| 6 | Johannes | 2 | 21 | M | 172 | 11.11.2015 |
| 7 | Lily | 6 | 22 | F | 165 | 26.02.2016 |
| 8 | Susan | 4 | 23 | F | 170 | 01.10.2015 |
| 9 | Thomas | 3 | 22 | M | 178 | 07.06.2016 |
| 10 | Tom | 4 | 23 | M | 165 | 05.08.2016 |
+------+--------+------+-------+----------+----------+----------+------------+
10 Zeilen im Satz (0,01 Sek.)

Sie können sehen, dass die Feldnamen in den Ansichten view_students_info und v_students_info unterschiedlich sind, die Daten jedoch dieselben sind. Daher müssen Benutzer bei der Verwendung von Ansichten möglicherweise nicht die Struktur der Basistabelle verstehen, geschweige denn auf die Daten in der eigentlichen Tabelle zugreifen, wodurch die Sicherheit der Datenbank gewährleistet wird.

Erstellen einer Ansicht basierend auf mehreren Tabellen

In MySQL können Sie mit der Anweisung CREATE VIEW auch Ansichten auf mehr als zwei Tabellen erstellen.

【Beispiel 3】

Erstellen Sie die Ansicht v_students_info für die Tabellen tb_student_info und tb_departments. Die eingegebenen SQL-Anweisungen und die Ausführungsergebnisse sind wie folgt.

mysql> CREATE VIEW v_students_info
  -> (s_id,s_name,d_id,s_alter,s_geschlecht,s_größe,s_datum)
  -> AS SELECT ID, Name, Abteilungs-ID, Alter, Geschlecht, Größe, Anmeldedatum
  -> VON tb_students_info;
Abfrage OK, 0 Zeilen betroffen (0,06 Sek.)
mysql> AUSWÄHLEN * VON v_students_info;
+------+--------+------+-------+----------+----------+----------+------------+
| s_id | s_name | d_id | s_alter | s_geschlecht | s_größe | s_datum |
+------+--------+------+-------+----------+----------+----------+------------+
| 1 | Dany | 1 | 24 | F | 160 | 10.09.2015 |
| 2 | Grün | 3 | 23 | F | 158 | 22.10.2016 |
| 3 | Henry | 2 | 23 | M | 185 | 31.05.2015 |
| 4 | Jane | 1 | 22 | F | 162 | 20.12.2016 |
| 5 | Jim | 1 | 24 | M | 175 | 15.01.2016 |
| 6 | Johannes | 2 | 21 | M | 172 | 11.11.2015 |
| 7 | Lily | 6 | 22 | F | 165 | 26.02.2016 |
| 8 | Susan | 4 | 23 | F | 170 | 01.10.2015 |
| 9 | Thomas | 3 | 22 | M | 178 | 07.06.2016 |
| 10 | Tom | 4 | 23 | M | 165 | 05.08.2016 |
+------+--------+------+-------+----------+----------+----------+------------+
10 Zeilen im Satz (0,01 Sek.)

Diese Ansicht kann die Daten in der Basistabelle wirksam schützen. Die Ansicht enthält s_id, s_name und dept_name. Das Feld s_id entspricht dem Feld id in der Tabelle tb_students_info, das Feld s_name entspricht dem Feld name in der Tabelle tb_students_info und das Feld dept_name entspricht dem Feld dept_name in der Tabelle tb_departments.

Abfrageansicht

Sobald eine Ansicht definiert ist, können Sie die Daten in der Ansicht mit der SELECT-Anweisung abfragen, genau wie bei einer Datentabelle. Die Syntax ist dieselbe wie bei der Abfrage von Daten in der Basistabelle.

Ansichten werden für Abfragen in den folgenden Bereichen verwendet:

  • Verwenden Sie Ansichten, um die abgerufenen Daten neu zu formatieren.
  • Verwenden Sie Ansichten, um komplexe Tabellenverknüpfungen zu vereinfachen.
  • Verwenden Sie Ansichten, um Daten zu filtern.

Mit DESCRIBE kann die Ansicht angezeigt werden. Die Syntax lautet wie folgt:

DESCRIBE-Ansichtsname;

【Beispiel 4】

Verwenden Sie die DESCRIBE-Anweisung, um die Definition der Ansicht v_students_info anzuzeigen. Die eingegebene SQL-Anweisung und das Ausführungsergebnis lauten wie folgt.

mysql> BESCHREIBEN v_students_info;
+----------+------------------+------+-----+------------+-----------+
| Feld | Typ | Null | Schlüssel | Standard | Extra |
+----------+------------------+------+-----+------------+-----------+
| s_id | int(11) | NEIN | | 0 | |
| s_name | varchar(45) | JA | | NULL | |
| d_id | int(11) | JA | | NULL | |
| s_age | int(11) | JA | | NULL | |
| s_sex | enum('M','F') | JA | | NULL | |
| s_height | int(11) | JA | | NULL | |
| s_date | Datum | JA | | 22.10.2016 | |
+----------+------------------+------+-----+------------+-----------+
7 Zeilen im Satz (0,04 Sek.)

Hinweis: DESCRIBE kann im Allgemeinen als DESC abgekürzt werden. Das Ausführungsergebnis der Eingabe dieses Befehls ist dasselbe wie die Eingabe von DESCRIBE.

Oben finden Sie Einzelheiten zum Erstellen von Ansichten in MySQL. Weitere Informationen zum Erstellen von Ansichten in MySQL finden Sie in den anderen verwandten Artikeln auf 123WORDPRESS.COM!

Das könnte Sie auch interessieren:
  • Detaillierte Erläuterung zum Erstellen einer Ansicht (CREATE VIEW) und zu Nutzungsbeschränkungen in MySQL
  • Detaillierte Analyse der Prinzipien und der Verwendung von MySQL-Ansichten
  • Detaillierte Erklärung der Verwendung und Unterschiede von MySQL-Ansichten und -Indizes
  • Eine kurze Diskussion über MySql-Ansichten, Trigger und gespeicherte Prozeduren
  • Detaillierte Erläuterung der gespeicherten Prozedur „MySql View Trigger“
  • Detaillierte Erklärung des Prinzips und der Verwendung von MySQL-Ansichten
  • Detaillierte Erläuterung des Ansichtsbeispiels zur MySQL-Ansichtsverwaltung [Hinzufügen-, Löschen-, Ändern- und Abfragevorgänge]
  • Detaillierte Erklärung zum Erstellen einer aktualisierbaren Ansicht in MySQL
  • Der Unterschied zwischen Update und Select in MySQL für einzelne und mehrere Tabellen sowie Ansichten und temporäre Tabellen
  • mysql drei Tabellen verbunden, um eine Ansicht zu erstellen
  • MySQL View-Prinzipanalyse

<<:  JavaScript zum Erzielen eines einfachen Drag-Effekts

>>:  Lösen Sie das Problem der VScode-Konfiguration durch Remote-Debugging des Linux-Programms

Artikel empfehlen

Installieren des Ping-Tools in einem von Docker erstellten Container

Denn die von Docker abgerufenen Basisimages wie C...

Zusammenfassung grundlegender SQL-Anweisungen in der MySQL-Datenbank

Dieser Artikel beschreibt anhand von Beispielen d...

Hinweise zum Upgrade auf mysql-connector-java8.0.27

Kürzlich wurde bei einem Online-Sicherheitsscan e...

So erben Sie die CSS-Zeilenhöhe

Wie wird die Zeilenhöhe vererbt?Schreiben Sie ein...

Grundlegende Ideen und Codes zur Implementierung von Videoplayern in Browsern

Inhaltsverzeichnis Vorwort Zusammenfassung der Au...

Die Verwendung von FrameLayout in sechs Layouts

Vorwort In der letzten Ausgabe haben wir Ihnen Li...

Beispielcode für HTML-Layout links und rechts

CSS: Code kopieren Der Code lautet wie folgt: html...

Detailliertes Tutorial zur Installation von MySQL 8 in CentOS 7

Vorbereiten Umweltinformationen zu diesem Artikel...

So verwenden Sie Linux-Befehle in IDEA

Im Vergleich zum Windows-System bietet das Linux-...