Oracle视图基础知识

2025-12-29 16:54:27

1、基本定义:

它是基于一个表或多个表的逻辑表,视图本身并不包含任何数据。视图是虚拟的表,它的数据来源是基于基表的。基表中的数据发宙愁生变化视图也会变化。

所谓视图就是提取一张或者多张表的数据生成一个映射,管理视图可以同样达到操作原表 的效果,方便数据的管理以及安全操作。

视图其实就是一条查询sql语句,用于显示一个或多个表或其他视图中的相关数据。视图将   一个查询的结果作为一个表来使用,因此视图可以被看作是存储查询结果的一个虚拟表。视图来  源于表,所有对视图数据的修改最终都会被反映到视图的基表中,这些修改必须服从基表的完整  性约束。罩掩塑

2、视图的存储:

与表不同,视图不会要求分配存储空间,视图中也不会包含实际的数据。视图只是定义了一个查询,视图中的数据是从基表中获取,这些数据在视图被引用时动态的生成。由于视图基于数据库中的其他对象,因此一个视图只需要占用数据字典中保存其定义的空间,而无需额外的存储空间。

3、视图作用

1.全数据简化

2.全数据更加独立

3.增加安全性

4.简化权限

视图类型

1.关系视图      是虚拟表,最常用

2.内嵌视图

3.对象视图

4.物化视图

4、视图的创建:

创建视图需要具有DBA权限

grant create view to username;

视图的创建:

语法

create (or replace) (no force) view view_name  as select id,name,age from user_admin where age=20 with read only;

可根据不同的条件创建不同的视力来满足不同的需求  如下:

or replace 视图如果存在则替换

no force 表示是否强制创建视图  如果基表不存在创建视图会报错  no force是oracle默认创建视图方式   force 是强制创建    no force 是不强制创建

with read only  设置视图只读   设置成功后不能更改视图中的数据

with check option【constraint】要使用这个条件必须满足子查询constraint 如果想通过视图去插入一条数据,那么必须要满足where后面的条件

例如

insert into view_name (id,name,age) values(18,'名字',20);   这条插入的数据条件   age 必须是20  如果是散痕其它则报错    修改‘删除语句操作也要满足条件才可以进行     对视图里面的数据进行更改 删除操作也会影响基表数据

对视图里面的数据操作有 insert update delete三种

Oracle视图基础知识

5、 修改视图  

 直接使用create or replace .....命令来执行  和新建视图一样

create or replace view view_name  as select id,name,age from user_admin where age=20 with read only;

删除视图

drop view view_name;

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢