视图的起源
MySQL5.0.1
(开天辟地一版本)中增加的三大新功能之一,另外两个师兄弟是存储过程
与触发器。均属于相对“高级”一点的数据库必需功能。
视图是一种虚拟存在的表,行和列的数据来自定义视图的查询中使用的表,并且是在使用
视图时动态生成的,只保存了
sql
逻辑,不保存查询结果
MySQL
在定义视图上没什么限制,基本上所有的查询都可定义为视图,同时也支持可更
新视图(当然只有在视图和行列与基础表的行列之间存在一一对应关系时才能更新),因
此从功能上说
MySQL
的视图功能已经很完善了。
一、视图概述
视图是一个虚拟表,其内容由查询定义。同真实的表一样,视图包含一系列带有名称的列
和行数据。但是,视图并不在数据库中以存储的数据值集形式存在。行和列数据来自由定
义视图的查询所引用的表,并且在引用视图时动态生成。
对其中所引用的基础表来说,视图的作用类似于筛选。定义视图的筛选可以来自当前或其
它数据库的一个或多个表,或者其它视图。通过视图进行查询没有任何限制,通过它们进
行数据修改时的限制也很少。
视图是存储在数据库中的查询的
SQL
语句,视图有两个特点:
1.
安全。视图可以隐藏一些数据。如:个税表,可以用视图只显示姓名,地址,而不显示
个税号和工资数等,
2.
可使复杂的查询易于理解和使用。这个视图就像一个窗口,从中只能看到你想看的数据
列。这意味着你可以在这个视图上使用
SELECT *
,而你看到的将是你在视图定义里给出
的那些数据列。
二、视图的意义
既然视图的定义是基于基本表的,哪为什么还要定义视图呢?这是因为合理地使用视图能
够带来许多好处:
1
、 视图能简化用户操作
视图机制使用户可以将注意力集中在所关心地数据上。如果这些数据不是直接来自基
本表,则可以通过定义视图,使数据库看起来结构简单、清晰,并且可以简化用户的的数
据查询操作。例如,那些定义了若干张表连接的视图,就将表与表之间的连接操作对用户
隐藏起来了。换句话说,用户所作的只是对一个虚表的简单查询,而这个虚表是怎样得来
的,用户无需了解。
2
、 视图使用户能以多种角度看待同一数据
视图机制能使不同的用户以不同的方式看待同一数据,当许多不同种类的用户共享同
一个数据库时,这种灵活性是非常必要的。
评论