视图概述

视图是一个或者多个表中导出的,视图的行为与表非常的相似,但视图是一个虚拟表
在视图中用户可以使用SELECT语句查询数据,以及使用INSERT、UPDATE、DELETE修改记录。
MySQL 5.0开始可以使用视图,视图可以使用户操作方便,而且可以保障数据库系统的安全。

视图的含义

视图是一个虚拟表,是从数据库中一个或多个表中导出来的表。视图还可以从已经存在的视图的基础上定义。
视图一经定义便存储在数据库中,与其相对应的数据并没有像表那样在数据库中再存储一份,通过视图看到的数据只是存放在基本表中的数据。对视图的操作与对表的操作一样,可以对其进行查询、修改和删除。
当对通过视图看到的数据进行修改时,相应的基本表数据也要发生变化;同时,若基本表的数据发生变化,则这种变化也可以自动的反映到视图中。

视图的作用

与直接从数据表中读取相比,视图有以下优点:

简单化

看到的就是需要的。视图不仅可以简化用户对数据的理解,也可以简化他们的操作。
那些被经常使用的查询可以被定义为视图,从而使得用户不必为以后的操作每次指定全部的条件。

安全性

通过视图用户只能查询和修改他们所能见到的数据
数据库中的其他数据则既看不见也取不到。数据库授权命令可以使每个用户对数据库的检索限制到特定的数据库对象上,但不能授权到数据库特定行和特定的列上。
通过视图,用户可以被限制在数据的不同子集上:

  • 使用权限可被限制在基表的行的子集上;
  • 使用权限可被限制在基表的列的子集上;
  • 使用权限可被限制在基表的行和列的子集上;
  • 使用权限可被限制在多个基表的连接所限定的行上;
  • 使用权限可被限制在基表中的数据的统计汇总上;
  • 使用权限可被限制在另一视图的一个子集上,或是一些视图和基表表合并后的子集上。

逻辑数据独立性

视图可帮助用户屏蔽真实表结构变化带来的影响。视图就相当于一个抽象层,用户面向的是抽象后的而不是底层表的细节。