【Oracle学习】Oracle之视图

文章目录

      • 1.视图定义
      • 2.与基本表的区别
      • 3.创建简单视图
        • 3-1 授予用户scott创建视图的权限
        • 3-2 创建视图
            • 3-2-1 创建普通视图
            • 3-2-2 创建只读视图
            • 3-2-3 创建检查约束视图
        • 3-3 视图上的DML操作
            • 3-3-1 普通视图
            • 3-3-2 只读视图
      • 4.创建连接视图
        • 4-1 创建连接视图
        • 4-2 键值保留表
          • 4-2-1 定义
          • 4-2-2 注意事项

1.视图定义

是从一个或者多个基本表中导出的表,给用户使用的‘专用表’

2.与基本表的区别

1、视图是已经编译好的SQL语句,表不是
2、 视图没有实际的物理记录,不占用物理空间,而表相反。
3、视图是查看表内容的窗口,是查看数据表的一种方法,视图可以不给用户接触表,使得用户不知道表结构,具		  有更大的安全性;
4、视图只是逻辑概念的存在,只能由创建的语句来修改。而表可以随时对它进行修改。
5、视图的建立和删除只影响视图本身,不影响对应的基本表

3.创建简单视图

3-1 授予用户scott创建视图的权限

在这里插入图片描述
【Oracle学习】Oracle之视图_第1张图片

3-2 创建视图

3-2-1 创建普通视图

在这里插入图片描述
在这里插入图片描述

3-2-2 创建只读视图

(with read only)

create view vw_emp_readonly as 
select empno,ename,job,hiredate,deptno 
from emp 
with read only;
3-2-3 创建检查约束视图

(where ~)(with check option)

create view vw_emp_check as 
select empno,ename,job,hiredate,deptno 
from emp 
where deptno=10 
with check option;

3-3 视图上的DML操作

3-3-1 普通视图

在这里插入图片描述

其实和表的操作是相同的,视图修改后,相应的基表也会修改
(经过我的实践,我发现,对于普通视图,基表修改后,相应的视图也会修改

3-3-2 只读视图

(只读视图只能进行查操作,不能增删改,基表修改后,相应的视图也会修改

4.创建连接视图

4-1 创建连接视图

create view vw_dept_emp
		as select a.deptno,a.dname,a.loc,b.empno,b.ename,b.sal 
		from dept a,emp b 
		where a.deptno=b.deptno and a.deptno in(10,30);

4-2 键值保留表

4-2-1 定义

表的键值在一个连接视图中也是键值,那么就称这个表为键值保留表。
【Oracle学习】Oracle之视图_第2张图片
可以看见,在连接视图中empno仍然保持了键的唯一性,所以表emp是键值保留表。

4-2-2 注意事项

不能修改与非键值保留表中所对应的列!

在这里插入图片描述

可以修改与键值保留表中所对应的列!

在这里插入图片描述

你可能感兴趣的:(Oracle)