Oralce基础-视图篇

内容简介

对Oracle数据库中视图的使用进行了介绍,所涉及的表为scott用户下的empdept表。

关于视图与基表

更新视图后表也会更新的条件:

  • select语句在选择列表中没有聚合函数,也不包含top,group by,union(除非视图是分区视图)或distinct子句。聚合函数可以用在from子句的子查询中,只要不修改函数返回的值。
  • select语句的选择列表中没有派生列。派生列是由任何非简单列表达式(使用函数、加法或减法运算符等)所构成的结果集列。 select语句中的from子句至少引用一个表。
  • select语句不能只包含非表格格式的表达式(即不是从表派生出的表达式)。

视图的创建

语法

force:创建视图的表不存在也会创建视图
noforce:(默认)创建视图的表必须存在,否则不会创建视图
or replace:存在则创建,否则则更新;

create [force | noforce | or replace] view 视图名称[(别名1,别名2,...)] as
查询语句;

示例

-- 创建视图的权限
grant create view to zhangqian;
 
--创建
create or replace view v_emp as
select empno,ename,job,sal from emp
order by empno;
 
--查看
select * from emp_view;

-- 查询当前用户视图
select * from user_views;
 
--修改,对于修改视图,原表也会改变
update emp_view set sal=3100
where empno=1001;

创建只读视图

with check option子句,保证视图的创建条件不被修改
with read only子句,使视图只读

-- with check option子句,保证视图的创建条件不被修改
create [force | noforce | or replace] view 视图名称[(别名1,别名2,...)] as
子查询
[with check option [constraint 约束名称]]
-- with read only子句,保证视图不能被更新
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值