暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

openGauss每日一练第18天 | 视图的管理

原创 olabll1 2022-12-11
255

学习目标

掌握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;

1.png

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;

2.png

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;

3.png

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;

4.png

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

评论