ALTER VIEW <视图名> AS <SELECT语句>
语法说明如下:<视图名>
:指定视图的名称。该名称在数据库中必须是唯一的,不能与其他表或视图同名。<SELECT 语句>
:指定创建视图的 SELECT 语句,可用于查询多个基础表或源视图。mysql> ALTER VIEW view_students_info -> AS SELECT id,name,age -> FROM tb_students_info; Query OK, 0 rows affected (0.07 sec) mysql> DESC view_students_info; +-------+-------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +-------+-------------+------+-----+---------+-------+ | id | int(11) | NO | | 0 | | | name | varchar(45) | YES | | NULL | | | age | int(11) | YES | | NULL | | +-------+-------------+------+-----+---------+-------+ 3 rows in set (0.03 sec)用户可以通过视图来插入、更新、删除表中的数据,因为视图是一个虚拟的表,没有数据。通过视图更新时转到基本表上进行更新,如果对视图增加或删除记录,实际上是对基本表增加或删除记录。
mysql> SELECT * FROM view_students_info; +----+--------+------+ | id | name | age | +----+--------+------+ | 1 | Dany | 24 | | 2 | Green | 23 | | 3 | Henry | 23 | | 4 | Jane | 22 | | 5 | Jim | 24 | | 6 | John | 21 | | 7 | Lily | 22 | | 8 | Susan | 23 | | 9 | Thomas | 22 | | 10 | Tom | 23 | +----+--------+------+ 10 rows in set (0.00 sec)【实例 2】使用 UPDATE 语句更新视图 view_students_info,输入的 SQL 语句和执行结果如下所示。
mysql> UPDATE view_students_info -> SET age=25 WHERE id=1; Query OK, 0 rows affected (0.24 sec) Rows matched: 1 Changed: 0 Warnings: 0 mysql> SELECT * FROM view_students_info; +----+--------+------+ | id | name | age | +----+--------+------+ | 1 | Dany | 25 | | 2 | Green | 23 | | 3 | Henry | 23 | | 4 | Jane | 22 | | 5 | Jim | 24 | | 6 | John | 21 | | 7 | Lily | 22 | | 8 | Susan | 23 | | 9 | Thomas | 22 | | 10 | Tom | 23 | +----+--------+------+ 10 rows in set (0.00 sec)查看基本表 tb_students_info 和视图 v_students_info 的内容,如下所示。
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) mysql> SELECT * FROM v_students_info; +------+--------+------+-------+-------+----------+------------+ | s_id | s_name | d_id | s_age | s_sex | s_height | s_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)
本文链接:http://task.lmcjl.com/news/16834.html