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

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

原创 Heming 2022-12-12
603

openGauss每日一练第18天

学习视图管理

学习对数据库视图的创建、删除、查询、修改,理解视图作用,完成课后作业。

创建t1表并插入数据

在omm用户下通过gsql -r连接数据库后,创建t1表和视图

omm=# CREATE TABLE t1( omm(# c_customer_sk integer, omm(# c_customer_id char(5), omm(# c_first_name char(6), omm(# c_last_name char(8) omm(# ); CREATE TABLE omm=# INSERT INTO t1 VALUES omm-# (6885, 1, 'Joes', 'Hunter'), omm-# (4321, 2, 'Lily','Carter'), omm-# (9527, 3, 'James', 'Cook'), omm-# (9500, 4, 'Lucy', 'Baker'); INSERT 0 4

创建t1_view视图

该视图只查询c_customer_id和c_first_name字段。

omm=# CREATE VIEW t1_view AS omm-# SELECT c_customer_id, c_first_name FROM t1; CREATE VIEW omm=# SELECT * FROM t1_view; c_customer_id | c_first_name ---------------+-------------- 1 | Joes 2 | Lily 3 | James 4 | Lucy (4 rows)

基于t1_view创建t1_view2

该视图最多只显示一条数据

omm=# create VIEW t1_view2 as SELECT * FROM t1_view LIMIT 1; CREATE VIEW omm=# select * from t1_view2; c_customer_id | c_first_name ---------------+-------------- 1 | Joes (1 row)

创建物化视图mv_test

物化视图与普通视图的区别就是物化视图有缓存,所以速度很快,我们通过materialized关键字创建。

omm=# create materialized view mv_test as select * from t1; CREATE MATERIALIZED VIEW --查看物化视图目前有多少行记录: omm=# select count(*) from mv_test; count ------- 5

插入数据并手动更新物化视图

omm=# INSERT INTO t1 VALUES (6885, 10, 'Heming', 'Heming'); INSERT 0 1 omm=# select count(*) from mv_test; count ------- 5

可以看到数据还是5行,接下来我们手动更新后再次查询

omm=# refresh materialized view mv_test; REFRESH MATERIALIZED VIEW omm=# select count(*) from mv_test; count ------- 6 (1 row)

可以看到数据更新。

删除视图t1_view、t1_view2、mv_test

omm=# drop view t1_view2; DROP VIEW omm=# drop view t1_view; DROP VIEW omm=# drop materialized view mv_test; DROP VIEW

注意:由于t1_view2依赖t1_view所以先要删除t1_view2再删除t1_view

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

评论