一,视图的概念
视图是一个或多个表提取数据,柔和成一个虚拟表,可以当作表使用。
二,为什么要使用视图
简化复杂数据查询;
提高运行效率;
限制数据访问;
在不同数据访问上提供不同视图,便于数据共享;
三,创建、删除视图
创建:
create (or replace) view view_name as 数据查询语句;--注意:or replace当年创建视图存在需要替换时需加上
看结构:
desc view_name;
删除:
drop view view_name;
create table mytest( id number(3), name varchar2(20), age number(3) ); insert into mytest values(1,'one',18); insert into mytest values(2,'two',20); insert into mytest values(3,'three',24); commit; --视图创建 create view myview as select * from mytest; --视图查看 select * from myview; --视图删除 drop view myview;
create table mytest( id number(3), name varchar2(20), age number(3) ); insert into mytest values(1,'one',18); insert into mytest values(2,'two',20); insert into mytest values(3,'three',24); commit; --视图强制创建 create or replace force view myview as select * from mytest; -------------------------------------------------------------- --视图查看 select * from myview; --视图插入数据(insert) insert into myview values(4,'four',25); commit; --视图查看 select * from myview; -------------------------------------------------------------- --视图更新(delete) update myview set name = 'fourfour' where id = 4; commit; --视图查看 select * from myview; -------------------------------------------------------------- --视图数据删除 delete from myview; commit; --视图查看 select * from myview; -------------------------------------------------------------- --视图删除 drop view myview; -------------总结:视图就是一张虚拟表,我们可以根据业务需求 -------------自己定义表中的数据,对虚拟表进行DML操作
create table mytest( id number(3), name varchar2(20), age number(3) ); insert into mytest values(1,'one',18); insert into mytest values(2,'two',20); insert into mytest values(3,'three',24); commit; --视图强制创建 create or replace force view myview as select * from mytest with read only; select * from myview; delete from myview;--报错:不能对只读视图进行DML操作
总结:视图就是根据业务需求创建的虚拟表,能够进行DML操作,特别注意的是只读视图的创建,注意结尾的语法