您的位置:首页 > 数据库 > Oracle

oracle 学习笔记 - 视图

2017-08-21 15:46 387 查看

什么是视图?

  ####怎么理解视图是一张虚表?

  

  1、首先视图是一张表,那么针对表的一系列操作都可以用来操作视图。(注意:不建议通过视图对表做修改操作);

  2、其次视图是一张虚表,视图中是没有数据的,视图中数据来源于创建视图时的表。

  

  ####视图的作用?

  

  视图一般用来简化复杂查询,不建议通过视图对表做修改操作。

创建视图

管理员授权

# 普通用户没有创建视图的权限,需要管理员授权

grand create view to scott;


# 创建视图
SQL> create or replace view empinfoview
2  as
3  select e.empno,e.ename,e.sal,e.sal*12 annsal,d.dname
4  from emp e, dept d
5  where e.deptno=d.deptno;


创建视图的语法:

create [or replace] [force|noforce] view viewName
[(alias[,alias]...)]
as subquery
[with check option [constraint constraint]]
[with read only [constraint constraint]];

#force: 子查询不一定存在

#notforce:  子查询存在(默认)

#with read only:只能做查询操作


修改视图

视图只能创建、删除、替换。修改视图只能用replace替换

replace view viewName...
...
...


删除视图

drop view viewName


视图的一些规定

使用DML的规定

简单视图中可以执行DML操作

视图定义中包含以下元素之一,不能使用delete

组函数

group by 字句

distinct 关键字

rowunm 伪列

视图定义中包含以下元素之一,不能使用update

组函数

group by 字句

distinct 关键字

rowunm 伪列

列的定义为表达式

视图定义中包含以下元素之一,不能使用insert

组函数

group by 字句

distinct 关键字

rowunm 伪列

列的定义为表达式

表中非空的列在视图定义中为包括

屏蔽DML操作

  可以使用 with read only 选项来屏蔽对视图的DML操作。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  oracle