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
名称和未加引号的标识符不区分大小写。这些字段必须添加双引号才能区分大小写。