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

Python3.6-MySql Dateipfad einfügen, die Lösung zum Entfernen des Backslashs

Wie unten dargestellt: Ersetzen Sie es einfach, w...

So zeigen Sie Webseiten in verschiedenen Auflösungen und Browsern richtig an

Die Schlüsselcodes lauten wie folgt: Code kopieren...

MySQL 5.7 Installations- und Konfigurations-Tutorial unter CentOS7 64 Bit

Installationsumgebung: CentOS7 64-Bit-Mini-Versio...

Detailliertes Tutorial zum Ersetzen von mysql8.0.17 in Windows 10

In diesem Artikel werden die spezifischen Schritt...

So setzen Sie Ihr Linux-Passwort zurück, wenn Sie es verloren haben

1. Das Startmenü besteht darin, den Cursor in die...

Ein kurzes Verständnis der relevanten Sperren in MySQL

Dieser Artikel soll Ihnen vor allem dabei helfen,...

Probleme und Lösungen für MYSQL5.7.17-Verbindungsfehler unter MAC

Das Problem, dass MYSQL5.7.17 unter MAC keine Ver...

Einfaches Beispiel für die Definition und Verwendung von MySQL-Triggern

Dieser Artikel beschreibt die Definition und Verw...

Detaillierte Analyse und Prüfung von SSD-Leistungsproblemen in MySQL-Servern

【Frage】 Wir haben einen HP-Server. Wenn die SSD e...

Grafisches Tutorial zur Installation und Konfiguration von MySQL (CentOS7)

1. Systemumgebung [root@localhost-Startseite]# ca...