多语言展示
当前在线:1228今日阅读:23今日分享:25

oracle视图view

oracle视图
工具/原料
1

centos7

2

oracle11g、 secureCRT

方法/步骤
1

oracle视图一、视图定义视图是一种虚拟表,视图并不存储数据,它只是基于基表数据的一种查询结果。二、视图优点1.简化数据查询2.简化用户权限的管理3.便于数据共享三、视图分类1.简单视图2.复杂视图3.连接视图4.只读视图5.约束视图check四、创建视图1.查看用户是否拥有创建视图权限

2

2.语法create view view_name  as 查询语句;   简单视图的数据修改可以还原到基表查询出部门ID为80的雇员的姓名 工资 部门编号

3

查看视图结构 可以看到 查询中的字段都已经存在在了视图中

4

查询视图表中内容  可以看到 只能部门ID为80的雇员数据在视图表中

5

在创建视图的时候基表中的数据也一并会被创建到视图中,如果有条件限制就根据条件创建数据,如果没有条件 就会把基表中的数据全部创建到视图中

6

3.修改视图   视图没有alter命令   只能通过重新创建视图来替换掉已经存在的视图修改视图语法:create or replace view view80 as 查询语句;重下图中可以看到,已经重新创建了一个 view80视图,视图的结构与上图比较可以看出新视图与原来视图的结构不一样。

7

4.创建复杂视图 ,所谓复杂视图就是创建多表查询的视图    复杂视图修改的数据无法还原到基表

8

5.对视图中的数据进行操作(修改   删除操作)的时候,要求视图中不能有 主函数   不能有group by子句  不能有distinct关键字  不能有rownum 伪列  这四个条件中任意一个出现在视图中 都是不能对视图中的数据进行操作。   如果想对视图进行insert操作的话,那么不能进行主函数   group by  distinct关键字    rownum 伪列   而且 还不能包含计算生成的表达式 ,还有一个原因不能插入数据是因为基表中有字段 要求为非空属性,那么在视图中进行数据插入的时候,如果视图中没有这个字段那么 插入数据也是不会成功的。

9

不过有一点在上图中也可以看出来,在创建视图的时候,基表中的非空约束也一并创建在了视图当中 。而其它约束却不会被一起创建过来。

10

6.通过with read only 来设置对创建的视图的更改操作,可以看到设置为只读视图后,是无法对视图进行数据操作的

11

如果想对视图插入数据的条件进行限制,则需要使用with check option,可以看到现在由于有条件限制工资小于10000的无法插入到视图中去的

12

7.删除视图语法:crop view 视图名称;

注意事项

此经验由勇敢的choy原创,觉得此经验对你有帮助,请点击下面【投票】予以支持,也可以点击上面的【五角星】来收藏!

推荐信息