Heim >Datenbank >MySQL-Tutorial >Was soll ich tun, wenn MySQL keine Ansicht erstellen kann?
Lösung für das Problem, dass MySQL keine Ansicht erstellen kann: Verwenden Sie die CREATE VIEW-Anweisung, um eine Ansicht zu erstellen. Der Code lautet [CREATE VIEW a298568fea0eab1d5b0fd78e193ddf6e], wobei [a298568fea0eab1d5b0fd78e193ddf6e] der Name ist die angegebene Ansicht. 语句>
Weitere verwandte kostenlose Lernempfehlungen: MySQL-Tutorial(Video)
MySQL kann keine Ansichtslösung erstellen:
Grundlegende Grammatik
Ansichten können mit der CREATE VIEW-Anweisung erstellt werden. Das Syntaxformat lautet wie folgt:CREATE VIEW <视图名> AS <SELECT语句>Die Syntaxbeschreibung lautet wie folgt.
Ansichten basierend auf einer einzelnen Tabelle erstellen
MySQL kann Ansichten einer einzelnen Datentabelle erstellen.Sehen Sie sich die Daten der Tabelle tb_students_info in der Datenbank test_db an, wie unten gezeigt.
mysql> SELECT * FROM tb_students_info; +----+--------+---------+------+------+--------+------------+ | id | name | dept_id | age | sex | height | login_date | +----+--------+---------+------+------+--------+------------+ | 1 | Dany | 1 | 25 | F | 160 | 2015-09-10 | | 2 | Green | 3 | 23 | F | 158 | 2016-10-22 | | 3 | Henry | 2 | 23 | M | 185 | 2015-05-31 | | 4 | Jane | 1 | 22 | F | 162 | 2016-12-20 | | 5 | Jim | 1 | 24 | M | 175 | 2016-01-15 | | 6 | John | 2 | 21 | M | 172 | 2015-11-11 | | 7 | Lily | 6 | 22 | F | 165 | 2016-02-26 | | 8 | Susan | 4 | 23 | F | 170 | 2015-10-01 | | 9 | Thomas | 3 | 22 | M | 178 | 2016-06-07 | | 10 | Tom | 4 | 23 | M | 165 | 2016-08-05 | +----+--------+---------+------+------+--------+------------+ 10 rows in set (0.00 sec)【Beispiel 1】Erstellen Sie eine Ansicht mit dem Namen view_students_info in der Tabelle tb_students_info. Die Eingabe-SQL-Anweisung und die Ausführungsergebnisse sind wie folgt.
mysql> CREATE VIEW view_students_info -> AS SELECT * FROM tb_students_info; Query OK, 0 rows affected (0.00 sec) mysql> SELECT * FROM view_students_info; +----+--------+---------+------+------+--------+------------+ | id | name | dept_id | age | sex | height | login_date | +----+--------+---------+------+------+--------+------------+ | 1 | Dany | 1 | 25 | F | 160 | 2015-09-10 | | 2 | Green | 3 | 23 | F | 158 | 2016-10-22 | | 3 | Henry | 2 | 23 | M | 185 | 2015-05-31 | | 4 | Jane | 1 | 22 | F | 162 | 2016-12-20 | | 5 | Jim | 1 | 24 | M | 175 | 2016-01-15 | | 6 | John | 2 | 21 | M | 172 | 2015-11-11 | | 7 | Lily | 6 | 22 | F | 165 | 2016-02-26 | | 8 | Susan | 4 | 23 | F | 170 | 2015-10-01 | | 9 | Thomas | 3 | 22 | M | 178 | 2016-06-07 | | 10 | Tom | 4 | 23 | M | 165 | 2016-08-05 | +----+--------+---------+------+------+--------+------------+ 10 rows in set (0.04 sec)Standardmäßig verfügt die erstellte Ansicht über dieselben Felder wie die 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 Eingabe-SQL-Anweisung und die Ausführungsergebnisse sind wie folgt.
mysql> CREATE VIEW v_students_info -> (s_id,s_name,d_id,s_age,s_sex,s_height,s_date) -> AS SELECT id,name,dept_id,age,sex,height,login_date -> FROM tb_students_info; Query OK, 0 rows affected (0.06 sec) mysql> SELECT * FROM v_students_info; +------+--------+------+-------+-------+----------+------------+ | s_id | s_name | d_id | s_age | s_sex | s_height | s_date | +------+--------+------+-------+-------+----------+------------+ | 1 | Dany | 1 | 24 | F | 160 | 2015-09-10 | | 2 | Green | 3 | 23 | F | 158 | 2016-10-22 | | 3 | Henry | 2 | 23 | M | 185 | 2015-05-31 | | 4 | Jane | 1 | 22 | F | 162 | 2016-12-20 | | 5 | Jim | 1 | 24 | M | 175 | 2016-01-15 | | 6 | John | 2 | 21 | M | 172 | 2015-11-11 | | 7 | Lily | 6 | 22 | F | 165 | 2016-02-26 | | 8 | Susan | 4 | 23 | F | 170 | 2015-10-01 | | 9 | Thomas | 3 | 22 | M | 178 | 2016-06-07 | | 10 | Tom | 4 | 23 | M | 165 | 2016-08-05 | +------+--------+------+-------+-------+----------+------------+ 10 rows in set (0.01 sec)Sie können sehen, dass die Feldnamen in den beiden Ansichten view_students_info und v_students_info unterschiedlich sind, die Daten jedoch gleich sind. Daher müssen Benutzer bei der Verwendung von Ansichten möglicherweise nicht die Struktur der Basistabelle verstehen, geschweige denn die Daten in der tatsächlichen Tabelle, wodurch die Sicherheit der Datenbank gewährleistet wird.
Erstellen Sie Ansichten basierend auf mehreren Tabellen
In MySQL können Sie mithilfe der CREATE VIEW-Anweisung auch Ansichten in mehr als zwei Tabellen erstellen.【Beispiel 3】
Erstellen Sie die Ansicht v_students_info für die Tabelle tb_student_info und die Tabelle tb_departments. Die Eingabe-SQL-Anweisung und das Ausführungsergebnis lauten wie folgt.mysql> CREATE VIEW v_students_info -> (s_id,s_name,d_id,s_age,s_sex,s_height,s_date) -> AS SELECT id,name,dept_id,age,sex,height,login_date -> FROM tb_students_info; Query OK, 0 rows affected (0.06 sec) mysql> SELECT * FROM v_students_info; +------+--------+------+-------+-------+----------+------------+ | s_id | s_name | d_id | s_age | s_sex | s_height | s_date | +------+--------+------+-------+-------+----------+------------+ | 1 | Dany | 1 | 24 | F | 160 | 2015-09-10 | | 2 | Green | 3 | 23 | F | 158 | 2016-10-22 | | 3 | Henry | 2 | 23 | M | 185 | 2015-05-31 | | 4 | Jane | 1 | 22 | F | 162 | 2016-12-20 | | 5 | Jim | 1 | 24 | M | 175 | 2016-01-15 | | 6 | John | 2 | 21 | M | 172 | 2015-11-11 | | 7 | Lily | 6 | 22 | F | 165 | 2016-02-26 | | 8 | Susan | 4 | 23 | F | 170 | 2015-10-01 | | 9 | Thomas | 3 | 22 | M | 178 | 2016-06-07 | | 10 | Tom | 4 | 23 | M | 165 | 2016-08-05 | +------+--------+------+-------+-------+----------+------------+ 10 rows in set (0.01 sec)Die Daten in der Basistabelle können durch diese Ansicht gut geschützt werden. 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. AbfrageansichtSobald die Ansicht definiert ist, können Sie die SELECT-Anweisung verwenden, um die Daten in der Ansicht abzufragen, genau wie beim Abfragen der Datentabelle. Die Syntax ist dieselbe wie beim Abfragen der Daten in der Basistabelle. Ansichten werden hauptsächlich für Abfragen in den folgenden Aspekten verwendet: Verwenden Sie Ansichten, um die abgerufenen Daten neu zu formatieren.
mysql> DESCRIBE v_students_info; +----------+---------------+------+-----+------------+-------+ | Field | Type | Null | Key | Default | Extra | +----------+---------------+------+-----+------------+-------+ | s_id | int(11) | NO | | 0 | | | s_name | varchar(45) | YES | | NULL | | | d_id | int(11) | YES | | NULL | | | s_age | int(11) | YES | | NULL | | | s_sex | enum('M','F') | YES | | NULL | | | s_height | int(11) | YES | | NULL | | | s_date | date | YES | | 2016-10-22 | | +----------+---------------+------+-----+------------+-------+ 7 rows in set (0.04 sec)Hinweis: DESCRIBE kann im Allgemeinen als DESC abgekürzt werden. Das Ausführungsergebnis der Eingabe dieses Befehls ist das gleiche wie die Eingabe von DESCRIBE.
Das obige ist der detaillierte Inhalt vonWas soll ich tun, wenn MySQL keine Ansicht erstellen kann?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!