INSERT INTO语句

    • table_name

      要插入数据的目标表名。

      取值范围:已存在的表名。

    • column_name

      目标表中的字段名:

      • 字段名可以有子字段名或者数组下标修饰。
      • 没有在字段列表中出现的每个字段,将由系统默认值,或者声明时的默认值填充,若都没有则用NULL填充。例如,向一个复合类型中的某些字段插入数据的话,其他字段将是NULL。
      • 目标字段(column_name)可以按顺序排列。如果没有列出任何字段,则默认全部字段,且顺序为表声明时的顺序。
      • value子句提供的值在表中从左到右关联到对应列。
    • expression

      赋予对应column的一个有效表达式或值:

      • 向表中字段插入单引号 “ ‘ “时需要使用单引号自身进行转义。
      • 如果插入行的表达式不是正确的数据类型,系统试图进行类型转换,若转换不成功,则插入数据失败,系统返回错误信息。
    • DEFAULT

      对应字段名的缺省值。如果没有缺省值,则为NULL。

    • 向已创建成功的表customer_t1中插入一行。

      1. INSERT 0 1

      如果用户已经知道表中字段的顺序,也可无需列出表中的字段。例如以下命令与上面的命令效果相同。

      如果用户不知道所有字段的数值,可以忽略其中的一些。没有数值的字段将被填充为字段的缺省值。例如:

      1. INSERT 0 1
      2. openGauss=# INSERT INTO customer_t1 VALUES (3769, 'hello');
      3. INSERT 0 1

      用户也可以对独立的字段或者整个行明确缺省值。

    • 如果需要在表中插入多行,请使用以下命令。

      1. openGauss=# INSERT INTO customer_t1 (c_customer_sk, c_customer_id, c_first_name,Amount) VALUES
      2. (4321, 'tpcds', 'Lily',3000),
      3. INSERT 0 3

      如果需要向表中插入多条数据,除此命令外,也可以多次执行插入一行数据命令实现。但是建议使用此命令可以提升效率。