Oracle视图

视图并不真正存储数据,其数据来自引用的表,oracle只在数据字典中存储视图的定义信息。

创建视图:                                                                                                        

create[or replace] view <view_name> [alias[,alias]...]--alias别名,若子查询包含函数和表达式必须定义

as <subquery>                                                              --subquery 子查询语句

[with check option] [constraint constraint_name]      --with check option 指定在视图上的check约束

[with read only]                                                  --with read only 只读视图

 

建立只读视图:

create or replace  view stu_view as

select  * from stu  where classid=4

with read only;

用户只能对该视图进行select操作,不能dml

 

建立复杂视图:

create or replace view emp_view as

select deptno 部门编号,max(sal) 最高工资 avg(平均工资)  from emp group by deptno;

select * from emp_view order by 部门编号;

 

管理视图:                                                                                             

查看视图定义:

desc stu_view;

select  text from user_views where view_name='STU_VIEW';

重新编译视图:

当引用表的定义改变后,视图标记为无效。当调用该视图时oracle重新编译。也可以手动编译

alter view stu_view compile;

删除视图:

drop view stu_view; 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Oracle 视图View)是一种虚拟表,是基于一个或多个基础表(Base Table)的查询结果集的命名表示。在 Oracle 数据库中,可以通过创建视图来简化复杂的查询,隐藏实际表的结构和数据,以及提供安全性和数据独立性。 以下是 Oracle 视图的创建语法: ```sql CREATE [OR REPLACE] [FORCE|NOFORCE] VIEW view_name [(alias1, alias2, ...)] AS select_statement; ``` 其中, - `OR REPLACE`:如果视图已经存在,则用新的定义替换。 - `FORCE`:如果基础表不存在或者视图依赖的对象无效,则仍然创建视图。 - `NOFORCE`:如果基础表不存在或者视图依赖的对象无效,则不创建视图。 - `view_name`:视图的名称。 - `alias1, alias2, ...`:列别名,可以省略。 - `select_statement`:查询语句,用于定义视图。 例如,创建一个简单的视图: ```sql CREATE VIEW emp_view AS SELECT empno, ename, job, sal FROM emp WHERE deptno = 10; ``` 在创建视图后,可以像查询表一样使用视图: ```sql SELECT * FROM emp_view; ``` 还可以在视图中使用聚合函数、子查询、连接等高级语法,例如: ```sql CREATE VIEW dept_sal_view AS SELECT d.dname, SUM(e.sal) AS total_sal FROM dept d, emp e WHERE d.deptno = e.deptno GROUP BY d.dname; ``` 在使用视图时,可以像查询表一样使用它: ```sql SELECT * FROM dept_sal_view; ``` 总之,Oracle 视图是一种非常方便的工具,可以简化复杂的查询,隐藏实际表的结构和数据,提供安全性和数据独立性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值