一、INSERT语句
标准格式:
INSERT INTO 表名 (列1 , 列2, 列3) VALUES (值1 , 值2 , 值3);
1、将列名和值用逗号隔开,分别括在()内,这种形式称为清单。进而分为列清单、值清单。
2、对表进行全列INSERT(每一列的值都出现在值清单)时,可以省略表名后的列清单。
即可写成:
INSERT INTO 表名 VALUES (值1 , 值2);
3、多行增加
不同数据库系统之间存在差异。
DB2、SQL、SQL Server、 PostgreSQL 、MySQL :
INSERT INTO 表名 VALUES (值1 , 值2 值3 ... ),
(值1 , 值2 值3 ... ),
(值1 , 值2 值3 ... ),
.
.
.
(值1 , 值2 值3 ... );
Oracle:
INSERT ALL INTO 表名 VALUES (值1 , 值2 , 值3)
INTO 表名 VALUES (值1 , 值2 , 值3)
.
.
.
INTO 表名 VALUES (值1 , 值2 , 值3)
SELECT * FROM DUAL;
二、插入默认值
可以通过在创建表的CREATE TABLE语句中设置DEFAULT约束来设定默认值。
1、显式方式插入默认值
在值清单中书写DEFAULT关键字
INSERT INTO 表名 (列1 , 列2 , 列3) VALUES (值1 , DEFAULT , 值3);
2、隐式方法插入默认值
在列清单和值清单中省略设定了默认值的列就可以。
注:为了提高代码的可读性,建议使用显式方式插入默认值。
如果省略了没有设定默认值的列,该列的值就会设定为NULL。
三、从其他表中复制数据
INSERT INTO 目标表表名 (列名1 , 列名2 , 列名3)
SELECT 原表列名1 , 原表列名2 ,原表列名3
FROM 原表表名;
该INSERT语句中的SELECT语句可以使用WHERE、GROUP BY等语句。