达梦数据库的视图管理

视图(view),也称虚表, 不占用物理空间,因为视图本身的定义语句还是要存储在数据字典里的。视图只有逻辑表,每次使用的时候,只是重新执行SQL。
还有一种叫物化视图(materialized view),也称实体化视图,它是含有数据的,占用存储空间。

1、视图管理
视图是从一个或多个实际表中获得的,这些表的数据存放在数据库中。那些用于产生视图的表叫做该视图的基表,一个视图也可以从另一个视图中产生。

创建测试表,并且插入一条数据测试
create table tab_view_cs (id int, name varchar(10), sex varchar(10), bithdate date);
insert into tab_view_cs values(100, 'test','female', '2019-7-13');
达梦数据库的视图管理_第1张图片

创建视图测试,查询视图的结果
create or replace view tab_view_cs_v as select id, name from tab_view_cs where sex='female';
select name from tab_view_cs_v;
达梦数据库的视图管理_第2张图片

删除视图
drop view tab_view_cs_v;
达梦数据库的视图管理

2、物化视图
物化视图(materialized view),也称实体化视图,它是含有数据的,占用存储空间。
创建两张测试表
create table tab_mview_cs_1(v1 int, v2 char(10), v3 varchar(20), v4 date);
create table tab_mview_cs_2(t1 int, t2 char(10), t3 varchar(20), t4 date);
达梦数据库的视图管理

创建物化视图,并且查询物化视图结果
create materialized view tab_mview_cs_mv(v1, v2, v3, v4) build immediate refresh complete enable query rewrite as select tab_mview_cs_1.v1 as v1, tab_mview_cs_1.v2 as v2, tab_mview_cs_1.v3 as v3, tab_mview_cs_2.t4 as v4 from tab_mview_cs_1, tab_mview_cs_2 where tab_mview_cs_1.v1= tab_mview_cs_2.t1;

select * from tab_mview_cs_mv;
达梦数据库的视图管理_第3张图片

修改视化视图和删除后再查看看结果
alter materialized view tab_mview_cs_mv disable query rewrite;
drop materialized view tab_mview_cs_mv;
select * from tab_mview_cs_mv;
达梦数据库的视图管理_第4张图片