视图
来源:互联网 发布:怎么切换mac系统 编辑:程序博客网 时间:2024/06/10 11:13
1 本质
将select语句的检索结果用表的形式保存下来,因此有时视图称为假表。这是因为视图本身不包含任何数据的,仅仅是从对象表中动态地抽取数据,并将数据组织在一起,外表看起来像一个物理表。
2 作用
将多个物理表中的数据通过视图动态地组织在一起,用户可以像使用普通物理表那样使用它。
3 特征
(1)可以公开表中特定的行或列,通过视图进行权限权限管理。
(2)简化复杂的SQL查询,将经常使用的连接或子查询条件定义为视图,不仅可以简化SQL语句,当连接或子查询条件发生改变时,因为只用修改视图的定义,可以大大减少受影响的代码范围。
(3)可以限制可插入/更新的值范围,即使用[WITH CHECK POINT]命令。
4 创建视图
create view 视图名(列名,...)as select 语句 [with check point];即对指定的<select 语句>创建视图,包含指定列[列名,...]通常情况下,推荐加with check point ,从而避免发生不必要的错误
注意:在创建视图时select语句中不能包含如下内容:
(1)系统变量/用户变量的参照
(2)temporary类型的表
(3)from语句中的子查询
5 定义视图时最好将所有的视图名指定为一个共同的特征,如[v_]的形式开头。这时可以使用LIKE关键字将所有特征的表或视图显示出来。如show table like ‘v_%’;
6 显示视图中所有列的信息
show fields from 视图名;
7 删除视图
drop view 视图名;
8 对视图进行插入/更新/删除操作时,以下几种条件下不能进行:
(1)视图的列中含有统计函数的情况下
(2)视图定义时使用了group by/having语句,distinct语句,union语句的情况下
(3)视图定义时使用了子查询的情况下
(4)进行跨越多个表进行数据的变更(插入/更新/删除)操作
9 视图是一个非常方便的功能。但是就性能来说并非一个最好的选择。