VALUES语法目前只在MPP计算引擎模式下支持。
语法描述
INSERT INTO table_name [ ( column [, ... ] ) ] query
其中 row 是一个单独的表达式或者:
( column_expression [, ...] )
说明
定义一个常数内联表
VALUES 可以在任何允许使用查询语句的地方使用(例如,SELECT, INSERT语句中的 FROM 子句,甚至在语句的第一层级)。VALUES 创建了一个没有列名的匿名表,但是该表的表名和列名可以通过使用带有列别名的 AS 子句定义。
举例
返回一个表,包括一列三行数据:
VALUES 1, 2, 3
返回一个表,包含两列三行数据:<PRE prettyprinted? linenums>
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
问题描述: 用户希望了解VALUES
语法的使用场景与具体应用方式,特别是在MPP计算引擎模式下的支持情况。
查询背景: VALUES
语句在SQL中用于生成一个常量表,作为数据源参与查询或插入操作。它可以在多种SQL上下文中使用,如SELECT
、INSERT
等,尤其适用于构造小型临时数据集以进行快速查询或分析。
VALUES语法说明:
基本用法:
VALUES (expression [, ...] ) [, ...]
MPP计算引擎支持:VALUES
语法目前专为MPP(大规模并行处理)计算引擎模式设计提供支持。这意味着在采用MPP架构的数据库系统中,可以充分利用其并行处理能力高效地处理通过VALUES
构造的数据集。
构造表结构:通过在VALUES
后紧跟表达式列表,并可选地使用AS
子句指定表名和列名,可以构建具有明确结构的匿名表。
示例:
SELECT * FROM (VALUES (1, 'a'), (2, 'b'), (3, 'c')) AS t (id, name);
灵活应用:VALUES
不仅限于直接插入数据,还能嵌入到SELECT
、INSERT INTO
的FROM
子句中,甚至作为独立的查询结果返回。
示例应用:
简单值集合:
VALUES 1, 2, 3;
多列数据:
VALUES(1, 'a'),(2, 'b'),(3, 'c');
带列名的表结构:
SELECT * FROM (VALUES (1, 'a'), (2, 'b'), (3, 'c')) AS t (id, name);
注意事项: - 确认所使用的数据库系统支持MPP架构,并且版本兼容VALUES
的高级用法。 - 当利用VALUES
构造大量数据时,注意监控内存使用,避免资源耗尽。 - 在执行INSERT INTO
操作时,考虑数据类型匹配与目标表结构的一致性,以及是否启用严格插入模式以防止数据过滤问题。
通过上述说明与示例,您可以根据实际需求,在MPP计算引擎环境下有效利用VALUES
语法来构造数据、执行查询或数据插入操作。