前提
我正在參加21天養成好習慣| 第二屆openGauss每日一練活動
課程詳見:openGauss 3.0.0數據庫在線實訓課程
學習目標
掌握openGauss視圖的管理:創建視圖、刪除視圖、查詢視圖的信息、修改視圖的信息。
課程作業
1.創建表,創建普通視圖
–創建模式、表和插入數據
su - omm
gsql -r
Create schema tpcds;
CREATE TABLE tpcds.customer
( c_customer_sk integer, c_customer_id char(5), c_first_name char(6), c_last_name char(8)
) ;
INSERT INTO tpcds.customer VALUES
(6885, 1, 'Joes', 'Hunter'),
(4321, 2, 'Lily','Carter'),
(9527, 3, 'James', 'Cook'),
(9500, 4, 'Lucy', 'Baker');
–創建視圖
CREATE VIEW tpcds.customer_details_view_v1 AS
SELECT * FROM tpcds.customer
WHERE c_customer_sk > 5400;
–查看視圖內容
select * from tpcds.customer_details_view_v1;
2.使用視圖創建新的視圖
create VIEW tpcds.part_view as SELECT * FROM tpcds.customer_details_view_v1 where c_customer_sk =9527;
–查看新的視圖
select * from tpcds.part_view;
3.創建物化視圖
–創建基表
drop materialized view if exists mv_test;
drop table if exists test;
create table test(id serial primary key,testnum serial);
insert into test(testnum) values(generate_series(1,100000));
–創建物化視圖:
create materialized view mv_test as
select * from test where testnum%2=0;
–查看物化視圖目前有多少行記錄:
select count(*) from mv_test;
普通視圖在查詢中是實時進行計算的。如果建立視圖的基表數據很多,使用視圖的時候,進行實時計算視圖表示的結果集,將消耗很大的計算機資源,并且費時很長。
物化視圖提前計算出視圖的結果集,并將該結果集保存在數據庫里。
如果更新了基表,物化視圖將過期。也就是說,基表更新后,物化視圖不能反映最新的數據情況。因此在基表發生變化的時候,需要對物化視圖進行更新。
4.手動更新物化視圖
–系統視圖pg_views
select * from pg_views where schemaname = 'tpcds' or schemaname = 'public';
5.物化視圖相關的系統表GS_MATVIEW
–GS_MATVIEW系統表提供了關于數據庫中每一個物化視圖的信息
select * from GS_MATVIEW;
–向基表test插入數據,查看物化視圖有多少行記錄
insert into test(testnum) values(generate_series(1,100000));
select count(*) from mv_test;
–手動更新物化視圖,并查看更新物化視圖后,物化視圖有多少行記錄:
refresh materialized view mv_test;
select count(*) from mv_test;
5.刪除創建的視圖
–刪除普通視圖
DROP view tpcds.part_view;
DROP view TPCDS.customer_details_view_v1;
–刪除物化視圖
DROP MATERIALIZED VIEW mv_test;
了解openGauss
openGauss是一款全面友好開放,攜手伙伴共同打造的企業級開源關系型數據庫。openGauss提供面向多核架構的極致性能、全鏈路的業務、數據安全、基于AI的調優和高效運維的能力。openGauss深度融合華為在數據庫領域多年的研發經驗,結合企業級場景需求,持續構建競爭力特性。openGauss網站
(https://opengauss.org/zh/ ) 提供了有關openGauss軟件的最新信息。openGauss是一個數據庫管理系統。
數據庫是結構化的數據集合。它可以是任何數據,購物清單、圖片庫或公司網絡中的大量信息。要添加、訪問和處理存儲在計算機數據庫中的海量數據,您需要一個數據庫管理系統(DBMS)。數據庫管理系統可以對數據庫進行統一的管理和控制,以保證數據庫的安全性和完整性。由于計算機非常擅長處理大量數據,因此數據庫管理系統可以作為獨立程序使用,也可以作為其他應用程序的一部分在計算中發揮著核心作用。
openGauss數據庫是關系型的。
關系型數據庫是指采用了關系模型來組織數據的數據庫,其以行和列的形式存儲數據。行和列被稱為表,一組表組成了數據庫。關系模型可以簡單理解為二維表格模型,而一個關系型數據庫就是由二維表及其之間的關系組成的一個數據組織。
openGauss的SQL部分代表
“結構化查詢語言”。SQL是最常用的用于訪問和處理數據庫的標準計算機語言。根據您的編程環境,您可以直接輸入SQL、將SQL語句嵌入到以另一種語言編寫的代碼中,或者使用包含SQL語法的特定語言
API。SQL由ANSI/ISO
SQL標準定義。SQL標準自1986年以來一直在發展,并且存在多個版本。本手冊中,“SQL92”是指1992年發布的標準,“SQL99”是指1999年發布的標準,“SQL2003”是指2003年發布的標準。“SQL2011”是指該標準的當前版本。openGauss支持標準的SQL92/SQL99/SQL2003/SQL2011規范。openGauss軟件是開源的。
開源意味著任何人都可以使用和修改軟件。任何人都可以下載openGauss軟件并使用它,而無需支付任何費用。如果您愿意,您可以研究源代碼并對其進行更改以滿足您的需要。openGauss軟件使用木蘭寬松許可證V2(http://license.coscl.org.cn/MulanPSL2)來定義軟件的使用范圍。