Oracle视图

create or replace view v_emp as select empno,ename,sal from emp;

select * from v_emp;  --使用视图
update v_emp set sal=5555 where empno=7782;  --可以更新
commit;

--只读视图
create or replace view v_emp 
as select empno,ename,sal from emp  order by sal with read only; --只读


--在视图上也可以使用修改数据的DML语句,如INSERT、UPDATE和DELETE 
--视图上的DML语句有如下限制: 
--只能修改一个底层的基表 
--如果修改违反了基表的约束条件,则无法更新视图 
--如果视图包含连接操作符、DISTINCT 关键字、集合操作符、聚合函数或
--GROUP BY 子句,则将无法更新视图 
--如果视图包含伪列或表达式,则将无法更新视图


--连接视图使用DML只能修改单个基表  
create or replace view v_emp_dept
as
 select e.empno,e.ename,e.sal,d.deptno,d.dname from emp e
 inner join dept d on e.deptno=d.deptno;


--重新编译视图   基表使用alter table修改后视图将失效 需要重新编译
alter view v_emp_dept compile
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值