插入
插入一条完整的记录
隐式:
INSERT INTO 表名 VALUES(列1的值,列2的值, ..., 列n的值);
显式:
INSERT INTO 表名(列1, 列2, ..., 列n) VALUES(列1的值,列2的值, ..., 列n的值);
显式时,列对应值的顺序必须要跟列的顺序一致,不然会造成插入值位置错误,实际的键值对对应错误。
插入记录的一部分
我们在插入记录的时候,某些列的值可以被省略,但是这个列必须满足下边列出的某个条件之一:
- 该列允许存储 NULL 值。
- 该列有 DEFAULT 属性,给出了默认值。
再次强调一下,INSERT语句中指定的列顺序可以改变,但是一定要和VALUES
列表中的值一一对应起来。
批量插入多条记录
INSERT INTO 表名(列1, 列2, ..., 列n) VALUES(列1的值,列2的值, ..., 列n的值), (列1的值,列2的值, ..., 列n的值), (列1的值,列2的值, ..., 列n的值);
将某个查询的结果集插入表中
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
。