视图(View)是一种虚拟存在的表,对于使用视图的用户来说基本上是透明的。视图并
不在数据库中实际存在, 行和列数据来自定义视图的查询中使用的表, 并且是在使用视图时
动态生成的。
视图相对于普通的表的优势主要包括以下几项。
简单: 使用视图的用户完全不需要关心后面对应的表的结构、 关联条件和筛选条件,
对用户来说已经是过滤好的复合条件的结果集。
安全: 使用视图的用户只能访问他们被允许查询的结果集, 对表的权限管理并不能
限制到某个行某个列,但是通过视图就可以简单的实现。
数据独立:一旦视图的结构确定了,可以屏蔽表结构变化对用户的影响,源表增加
列对视图没有影响;源表修改列名,则可以通过修改视图来解决,不会造成对访问
者的影响。
视图的可更新性和视图中查询的定义有关系,以下类型的视图是不可更新的。
包含以下关键字的 SQL 语句: 聚合函数 (SUM、 MIN、 MAX、 COUNT 等) 、 DISTINCT、 GROUP
BY、HAVING、UNION 或者UNION ALL。
常量视图。
SELECT 中包含子查询。
JOIN。
FROM 一个不能更新的视图。
WHERE 字句的子查询引用了 FROM 字句中的表。