本小节将会为您介绍在交互式分析(Interactive Analytics)中数据写入INSERT的语法格式。

语法

INSERT INTO table [( column [, ...] )]
   VALUES ( {expression}  [, ...] ) 
   [, ...] | query}

INSERT将新行插入到一个表中。我们可以插入一个或者更多由值表达式指定的行,或者插入来自一个查询的零行或者更多行。

目标列的名称可以以任意顺序列出。如果没有给出列名列表,则有两种确定目标列的可能性。第一种是以被声明的顺序列出该表的所有列。另一种可能性是,如果VALUES子句或者query只提供N个列,则以被声明的顺序列出该表的前N列。VALUES子句或者query提供的值会被从左至右关联到这些显式或者隐式给出的目标列。

每一个没有出现在显式或者隐式列列表中的列都将被默认填充,如果为该列声明过默认值则用默认值填充,否则用空值填充。如果任意列的表达式不是正确的数据类型,将会尝试自动类型转换。

参数

table_name: 一个已有表的名称(可以被模式限定)。

alias:table_name的别名。当提供了一个别名时,它会完全隐藏掉表的实际名称。

column_name:名为table_name的表中的一个列的名称。如有必要,列名可以用一个子域名或者数组下标限定(指向一个组合列的某些列中插入会让其他域为空)。

expression:要赋予给相应列的表达式或者值。

query:提供要被插入行的查询(SELECT语句)。 其语法描述请参考SELECT语句。

示例

在交互式分析(Interactive Analytics)中,目前INSERT支持以下数据写入方式:
  1. insert into values
    INSERT INTO rh_holo2mysqltest (cate_id, cate_name) VALUES
        (3, 'true'),
        (3, 'fale'),
        (3, 'trxxue'),
        (3, 'x'),
        (4, 'The Dinner Game');
  2. insert into select
    insert into test2
    select 2,'two';