Skip to main content

CREATE VIEW

使用 CREATE VIEW 命令创建非物化视图,该视图在查询中引用视图时运行。可以基于 source、表、视图或索引创建非物化视图。

句法

CREATE VIEW [IF NOT EXISTS] view_name [ ( column_name [, ...] ) ] AS select_query;

参数

参数描述
mv_name要创建的视图的名称。
column_name指定视图的列。
select_query检索视图数据的 SELECT 查询。有关 SELECT 命令的句法和示例,请参阅 SELECT

示例

以下语句可基于普通表和带有连接器设置的表创建视图,然后基于现有视图创建新视图。表的数据由内置的 负载生成器 生成。

-- 创建一个表并添加一些记录。

CREATE TABLE t1 (a int, b int, c int);

INSERT INTO t1 VALUES (115, 1, 8), (585, 2, 3), (601, 3, 7);

-- 创建一个 source(其数据由内置生成器生成)。

CREATE TABLE s1 (i1 int, c1 varchar)
WITH (
connector = 'datagen',
fields.i1.kind = 'sequence',
fields.i1.start = '1',
fields.c1.kind = 'random',
fields.c1.length = '16',
fields.c1.seed = '3',
datagen.rows.per.second = '10'
) FORMAT PLAIN ENCODE JSON;

-- 根据表、source 和现有视图创建视图。

CREATE VIEW IF NOT EXISTS v1 (a1, b1) AS SELECT a, b FROM t1;

CREATE VIEW v2 AS SELECT * FROM s1 ORDER BY i1;

CREATE VIEW v3 AS SELECT a1, i1, c1 FROM v1 LEFT JOIN v2 ON v1.b1=v2.i1;

让我们查询视图 v3

SELECT * FROM v3;
 a1  | i1 |        c1        
-----+----+------------------
115 | 1 | pGWJLsbmPJZZWpBe
585 | 2 | FT7BRdifYMrRgIyI
601 | 3 | 0zsMbNLxQh9yYtHh
note

名称和未加引号的标识符不区分大小写。这些字段必须添加双引号才能区分大小写。