一、定义
视图:指计算机数据库中的一个临时虚拟表,其内容由查询定义;同真实的表一样,视图包含一系列带有名称的列和行数据。但是,视图并不在数据库中以存储的数据值集形式存在。
二、优点
1. 优点:
a. 无需保存数据,可以节省存储设备的容量;
b. 将频繁使用的SELECT 语句保存成视图,不用每次都重新书写。特别是在进行汇总以及复杂的查询条件导致SELECT 语句非常庞大时可以大大提高效率;
c. 视图中的数据会随着原表的变化自动更新,可以保证数据的最新状态;
d. mysql允许基于其他视图创建视图;
2. 缺点:
a. 定义视图时不能使用ORDER BY子句;
b. 无法将视图的更改反映到原表中的;记住:视图是一张衍生的表,原表改动,视图会随着变动,反之,视图无法改变原表,所以视图无法插入,删除或 者更新数据;
注: 应该将经常使用的SELECT语句做成视图。
三、示例:
1. 数据库中现有两张表Employee_China和Employ_USA, 如下:
2.创建视图
CREATE VIEW employee AS SELECT FistName, lastName, Age, City FROM Employee_China UNION SELECT FistName, lastName, Age, City FROM Employee_USA GROUP BY age
创建视图成功返回结果:
3.查看视图字段
DESCRIBE employee;
运行结果:
4. 查看数据库中有所有的视图:
show table status where comment='view';
运行结果:
注:由于这张表太长,只截取了一半;
5. 查看数据库中所有视图表
show full tables where Table_type = "VIEW";
运行结果:
6. 删除视图
Drop VIEW employee;
四、视图的使用
1. 应该尽量将频繁使用的查询作为视图;
2. 视图可以和表一样的使用和操作,不过试图是一张临时虚表;