文章目录
1.视图定义
是从一个或者多个基本表中导出的表,给用户使用的‘专用表’
2.与基本表的区别
1、视图是已经编译好的SQL语句,表不是
2、 视图没有实际的物理记录,不占用物理空间,而表相反。
3、视图是查看表内容的窗口,是查看数据表的一种方法,视图可以不给用户接触表,使得用户不知道表结构,具 有更大的安全性;
4、视图只是逻辑概念的存在,只能由创建的语句来修改。而表可以随时对它进行修改。
5、视图的建立和删除只影响视图本身,不影响对应的基本表
3.创建简单视图
3-1 授予用户scott创建视图的权限
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 定义
表的键值在一个连接视图中也是键值,那么就称这个表为键值保留表。
可以看见,在连接视图中empno仍然保持了键的唯一性,所以表emp是键值保留表。
4-2-2 注意事项
不能修改与非键值保留表中所对应的列!
可以修改与键值保留表中所对应的列!