達夢數據庫的視圖管理
視圖(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');
創建視圖測試,查詢視圖的結果
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;
刪除視圖
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;
修改視化視圖和刪除後再查看看結果
alter materialized view tab_mview_cs_mv disable query rewrite;
drop materialized view tab_mview_cs_mv;
select * from tab_mview_cs_mv;