oracle视图view
的有关信息介绍如下:oracle视图
oracle视图
一、视图定义
视图是一种虚拟表,视图并不存储数据,它只是基于基表数据的一种查询结果。
二、视图优点
1.简化数据查询
2.简化用户权限的管理
3.便于数据共享
三、视图分类
1.简单视图
2.复杂视图
3.连接视图
4.只读视图
5.约束视图check
四、创建视图
1.查看用户是否拥有创建视图权限
2.语法
create view view_name as 查询语句; 简单视图的数据修改可以还原到基表
查询出部门ID为80的雇员的姓名 工资 部门编号
查看视图结构 可以看到 查询中的字段都已经存在在了视图中
查询视图表中内容 可以看到 只能部门ID为80的雇员数据在视图表中
在创建视图的时候基表中的数据也一并会被创建到视图中,如果有条件限制就根据条件创建数据,如果没有条件 就会把基表中的数据全部创建到视图中
3.修改视图 视图没有alter命令 只能通过重新创建视图来替换掉已经存在的视图
修改视图语法:
create or replace view view80 as 查询语句;
重下图中可以看到,已经重新创建了一个 view80视图,视图的结构与上图比较可以看出新视图与原来视图的结构不一样。
4.创建复杂视图 ,所谓复杂视图就是创建多表查询的视图 复杂视图修改的数据无法还原到基表
5.对视图中的数据进行操作(修改 删除操作)的时候,要求视图中不能有 主函数 不能有group by子句 不能有distinct关键字 不能有rownum 伪列 这四个条件中任意一个出现在视图中 都是不能对视图中的数据进行操作。 如果想对视图进行insert操作的话,那么不能进行主函数 group by distinct关键字 rownum 伪列 而且 还不能包含计算生成的表达式 ,还有一个原因不能插入数据是因为基表中有字段 要求为非空属性,那么在视图中进行数据插入的时候,如果视图中没有这个字段那么 插入数据也是不会成功的。
不过有一点在上图中也可以看出来,在创建视图的时候,基表中的非空约束也一并创建在了视图当中 。而其它约束却不会被一起创建过来。
6.通过with read only 来设置对创建的视图的更改操作,可以看到设置为只读视图后,是无法对视图进行数据操作的
如果想对视图插入数据的条件进行限制,则需要使用with check option,可以看到现在由于有条件限制工资小于10000的无法插入到视图中去的
7.删除视图
语法:
crop view 视图名称;