插入

插入一条完整的记录

隐式:

  1. INSERT INTO 表名 VALUES(列1的值,列2的值, ..., n的值);

显式:

  1. INSERT INTO 表名(列1, 2, ..., n) VALUES(列1的值,列2的值, ..., n的值);

显式时,列对应值的顺序必须要跟列的顺序一致,不然会造成插入值位置错误,实际的键值对对应错误。

插入记录的一部分

我们在插入记录的时候,某些列的值可以被省略,但是这个列必须满足下边列出的某个条件之一:

  • 该列允许存储 NULL 值。
  • 该列有 DEFAULT 属性,给出了默认值。

再次强调一下,INSERT语句中指定的列顺序可以改变,但是一定要和VALUES列表中的值一一对应起来。

批量插入多条记录

  1. INSERT INTO 表名(列1, 2, ..., n) VALUES(列1的值,列2的值, ..., n的值), (列1的值,列2的值, ..., n的值), (列1的值,列2的值, ..., n的值);

将某个查询的结果集插入表中

  1. INSERT INTO second_table(s, i) SELECT second_column, first_column FROM first_table WHERE first_column < 5;

在将某个查询的结果集插入到表中时需要注意,INSERT 语句指定的列要和查询列表中的表达式一一对应。比方说上边的INSERT语句指定的列是s, i,对应于查询语句中的second_column, first_column