我们在插入数据到数据库中的时候,常用的语句如下:
INSERT INTO table1(id, name, address) VALUES(1, ygl, 'beijing')——适用于T-sql和PL/SQL;
SELECT id, name, address INTO table2 FROM table1——自动创建table2,T-sql用法;
INSERT INTO table2(id, name, address) SELECT id, name, address FROM table1
这里简单说一下第三句,由于可以指定插入到talbe2中的列,以及可以通过相对较复杂的查询语句进行数据源获取,可能使用起来会更加的灵活一些,但我们也必须注意,我们在指定目标表的列时,一定要将所有非空列都填上,否则将无法进行数据插入,还有一点比较容易出错的地方就是,当我们写成如下简写格式:
INSERT INTO table2 SELECT id, name, address FROM table1
INSERT INTO table1(id, name, address) VALUES(1, ygl, 'beijing')——适用于T-sql和PL/SQL;
SELECT id, name, address INTO table2 FROM table1——自动创建table2,T-sql用法;
INSERT INTO table2(id, name, address) SELECT id, name, address FROM table1
这里简单说一下第三句,由于可以指定插入到talbe2中的列,以及可以通过相对较复杂的查询语句进行数据源获取,可能使用起来会更加的灵活一些,但我们也必须注意,我们在指定目标表的列时,一定要将所有非空列都填上,否则将无法进行数据插入,还有一点比较容易出错的地方就是,当我们写成如下简写格式:
INSERT INTO table2 SELECT id, name, address FROM table1
此时,我们如果略掉了目标表的列的话,则默认会对目标表的全部列进行数据插入,且SELECT后面的列的顺序 必须和目标表中的列的定义顺序完全一致 才能完成正确的数据插入,这是一个很容易被忽略的地方,值得注意。
本文转自linzheng 51CTO博客,原文链接:http://blog.51cto.com/linzheng/1081802