视图
- 视图是一个虚拟表,本身并不包含数据。作为一个select语句保存在数据字典中的。它是sql的查询结果,其内容由查询定义。是从另外一个角度看待原表。同真实的表一样,视图包含一系列带有名称的列和行数据,在使用视图时动态生成。视图的数据变化会影响到基表,基表的数据变化也会影响到视图[insert update delete ] ;
- 创建视图—只有DQL语句才能以视图对象的方式创建出来,Mysql视图的定义在from关键字后面不能包含子查询
- create view 视图名 as select 字段名 from 表名;
- Create view myview as select ename ,empno from emp;
- 删除视图
- drop myview;
- 操作视图—CRUD
- 对视图的增删改查,会影响原表数据。即不是直接操作原表,是通过视图影响原表数据。
- 视图可以隐藏表的实现细节,对于保密程度较高的系统,数据库只对外提供相关视图,java程序员只对视图进行CRUD。
优点
- 简单:使用视图的用户完全不需要关心后面对应的表的结构、关联条件和筛选条件,对用户来说已经是过滤好的复合条件的结果集。
- 安全:使用视图的用户只能访问他们被允许查询的结果集,对表的权限管理并不能限制到某个行某个列,但是通过视图就可以简单的实现。
- 数据独立:一旦视图的结构确定了,可以屏蔽表结构变化对用户的影响,源表增加列对视图没有影响;源表修改列名,则可以通过修改视图来解决,不会造成对访问者的影响。