关于 YMatrix
标准集群部署
数据写入
数据迁移
数据查询
运维监控
参考指南
工具指南
数据类型
存储引擎
执行引擎
流计算引擎
灾难恢复
系统配置参数
索引
扩展
SQL 参考
常见问题(FAQ)
CREATE MATERIALIZED VIEW
定义一个新的物化视图。
CREATE MATERIALIZED VIEW [ IF NOT EXISTS ] <table_name>
[ (<column_name> [, ...] ) ]
[ USING <method> ]
[ WITH ( <storage_parameter> [= <value>] [, ... ] ) ]
[ TABLESPACE <tablespace_name> ]
AS <query>
[ WITH [ NO ] DATA ]
[DISTRIBUTED {| BY <column> [<opclass>], [ ... ] | RANDOMLY | REPLICATED }]
CREATE MATERIALIZED VIEW 定义查询的物化视图。该查询在执行命令时运行并用于填充视图(除非使用 WITH NO DATA),后续可通过 REFRESH MATERIALIZED VIEW 刷新。
CREATE MATERIALIZED VIEW 与 CREATE TABLE AS 类似,但额外保存了初始化视图所用的查询,以便后续按需刷新。刷新物化视图数据时需使用 REFRESH MATERIALIZED VIEW 命令。物化视图具有与表相似的多数属性,但不支持临时物化视图。
物化视图为只读视图。系统不允许对物化视图执行插入、更新或删除操作。请使用REFRESH MATERIALIZED VIEW语句更新物化视图数据。
若需生成时对数据进行排序,必须在物化视图查询中使用ORDER BY子句。但需注意:当物化视图查询包含ORDER BY或SORT子句时,若直接对物化视图执行SELECT操作,则无法保证数据的排序或排序状态。
创建一个包含所有喜剧电影的视图:
CREATE MATERIALIZED VIEW comedies AS SELECT * FROM films
WHERE kind = 'comedy';
这将创建一个包含视图创建时电影表中列的视图。尽管使用了*来创建物化视图,但后续添加到表中的列不会成为该视图的一部分。
创建一个视图,获取排名前十的婴儿名字:
CREATE MATERIALIZED VIEW topten AS SELECT name, rank, gender, year FROM
names, rank WHERE rank < '11' AND names.id=rank.id;
CREATE MATERIALIZED VIEW 是 SQL 标准的数据库扩展。
SELECT, VALUES, CREATE VIEW, ALTER MATERIALIZED VIEW, DROP MATERIALIZED VIEW, REFRESH MATERIALIZED VIEW