视图

其是一个定义

存在于system表空间

不占用实际空间存储

使用视图的作用:方便管理员,下降数据库性能;使数据有多样性、提升数据的安全性(只能查看部分数据);使sql语句更加通用;


conn / as sysdba

select count(*) from tabs;

conn lark/a;

select count(*) from tabs;

conn scott/tiger;

select count(*) from tabs;


创建视图

conn scott/tiger

select * from session_privs;//查询用户权限

conn / as sysdba

grant create view to scott;//赋予创建视图的权限给scott用户

select * from session_privs;

create view v2 as select ename,sal from emp;//创建视图

desc v2

select * from v2;

select * from user_views;//查询用户的视图

select * from dba_views;//查询dba的视图


desc user_views

select text from user_views where VIEW_NAME='USER_TABLES';//引号内区分大小写

select * from user_views where VIEW_NAME='USER_TABLES';//查询user_tables这个视图的内容结构


e.g创建视图,查看每个部门的工资总和

create view v_sal(deptno,salary) as select deptno,sum(sal) from emp group by deptno;//


注:

一般不通过视图修改基表,直接修改基表

简单的视图可以dml视图

复杂的视图,不能通过视图修改基表