一、概述
视图(view)是一种虚拟存在的表,是一个逻辑表,本身并不包含数据,可以理解为存储起来的select语句
对视图的修改:单表视图一般用于查询和修改,会改变基本表的数据,多表视图一般用于查询,不会改变基本表的数据。
视图是向用户提供基表数据的另一种表现形式。通常情况下,小型项目的数据库可以不使用视图,但是在大型项目中,以及数据表比较复杂的情况下,视图的价值就凸显出来了,它可以帮助我们把经常查询的结果集放到虚拟表中,提升使用效率。理解和使用起来都非常方便。
二、创建视图
1、语法
CREATE VIEW <视图名> <视图字段> AS <SELECT语句>
语法说明如下。
- <视图名>:指定视图的名称。该名称在数据库中必须是唯一的,不能与其他表或视图同名。
- <SELECT语句>:指定创建视图的 SELECT 语句,可用于查询多个基础表或源视图。
2、基于单表创建视图
//基于school表创建视图school_info,视图字段和school一致,查询语句别名会作为视图字段名 create view school_info as select * from school; select * from school_info; //自定义视图字段名 create view school_info1 (sid,sname) as select * from school where id > 10; //视图中的字段在基表中没有 create view school_info2 as select max(id) from school;
3、基于多表创建视图
create view school_user select * from school s join `user` u on u.sid = s.id
4、视图查询
视图一经定义之后,就可以如同查询数据表一样,使用 SELECT 语句查询视图中的数据,语法和查询基础表的数据一样。
视图用于查询主要应用在以下几个方面:
- 使用视图重新格式化检索出的数据。
- 使用视图简化复杂的表连接。
- 使用视图过滤数据。
DESCRIBE 可以用来查看视图,语法如下:
DESCRIBE 视图名;
三、查看视图
#查看数据表、视图表 show tables; #查看视图结构 describe school_info; #查看视图属性信息 show table status like 'school_info'; #查看视图创建详细定义信息 show create view school_info;
四、更新视图数据(增删改)
对视图的操作语法和基表一样,增删改视图数据,同时会对基表增删改
五、删除、修改视图
修改视图的名称可以先将视图删除,然后按照相同的定义语句进行视图的创建,并命名为新的视图名称。
删除视图是指删除 MySQL 数据库中已存在的视图。删除视图时,只能删除视图的定义,不会删除数据。
可以使用 DROP VIEW 语句来删除视图。
语法格式如下:
DROP VIEW <视图名1> [ , <视图名2> …]
其中:<视图名> 指定要删除的视图名。DROP VIEW 语句可以一次删除多个视图,但是必须在每个视图上拥有 DROP 权限。