学习目标
掌握openGauss视图的管理:创建视图、删除视图、查询视图的信息、修改视图的信息
1.创建表,创建普通视图
Create schema olabll;
CREATE TABLE olabll.tab1
( c1 int,
c2 varchar(50),
c3 char(10),
c4 char(8),
c5 serial
) ;
INSERT INTO olabll.tab1 VALUES
(100, 'a', 'aaa', 'a1'),
(200, 'b', 'bbbb','a2'),
(300, 'c', 'ccccc', 'a3'),
(400, 'd', 'dddddd', 'a4');
--创建视图
CREATE VIEW olabll.tab1_c1_v1 AS
SELECT * FROM olabll.tab1
WHERE c1 < 400;
--查看视图内容
select * from olabll.tab1_c1_v1;

2.使用视图创建新的视图
omm=# create VIEW olabll.tab1_c1_v2 as SELECT * FROM olabll.tab1_c1_v1 where c1 = 100;
CREATE VIEW
--查看新的视图
omm=# select * from olabll.tab1_c1_v2;
c1 | c2 | c3 | c4 | c5
-----+----+------------+----------+----
100 | a | aaa | a1 | 1
(1 row)
3.创建物化视图
--创建基表
drop materialized view if exists mv_tab2;
drop table if exists tab2;
create table tab2(c1 serial primary key,c2 serial);
insert into tab2(c1) values(generate_series(1,100000));
--创建物化视图:
create materialized view mv_tab2 as select * from tab2 where c1%2=0;
--查看物化视图目前有多少行记录:
select count(*) from mv_tab2;

4.手动更新物化视图
--向基表tab2插入数据,查看物化视图有多少行记录:
insert into tab2(c1) values(generate_series(100001,200000));
select count(*) from mv_tab2;
--手动更新物化视图,并查看更新物化视图后,物化视图有多少行记录:
refresh materialized view mv_tab2;
select count(*) from mv_tab2;

5.删除创建的视图
视图的删除存在依赖关系,注意删除顺序。
select * from pg_views where schemaname = 'olabll' or schemaname = 'public';
select * from gs_matviews where matviewname ='mv_tab2';
--删除普通视图
DROP view olabll.tab1_c1_v2;
DROP view olabll.tab1_c1_v1;
--删除物化视图
DROP MATERIALIZED VIEW mv_tab2;

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




