一.INSERT … SELECT语法介绍
上图来自官方文档,在其中,有这样一句话描述: 可以根据SELECT 语句的结果快速将多行插入到表中,该语句可以从一个或多个表中进行选择。在这段话下面,给我们提供了一个使用的demo。
INSERT INTO tbl_temp2 (fld_id)
SELECT tbl_temp1.fld_order_id
FROM tbl_temp1 WHERE tbl_temp1.fld_order_id > 100;
根据官方文档描述,我们可以使用该语法来做表复制。在很多博客中,大家都写作INSERT INTO SELECT,或许大家习惯了将insert和into绑定到一起,我们可以看到官方文档将其称为INSERT…SELECT 语法,这里需要特殊说明一下。
二.INSERT … SELECT语法使用
--1.创建测试表
create TABLE Table1
(
a varchar(10),
b varchar(10),
c varchar(10)
);
create TABLE Table2
(
a varchar(10),
c varchar(10),
d int
);
--2.创建测试数据
insert into Table1 values('赵','asds','90');
insert into Table1 values('钱','asds','100');
insert into Table1 values('孙','asds','80');
insert into Table1 values('李','asds',null);
--显示更新前结果
select * from Table2;
--3.INSERT INTO SELECT语句复制表数据部分列和常值
insert into Table2(a, c, d) select a,c,5 from Table1;
或:insert into Table2 select * from Table1;
--4.显示更新后的结果
select * from Table2;
--5.删除测试表
drop TABLE Table1;
drop TABLE Table2;
三.操作结果
- 复制表之前:
- 复制表之后:
参考文章:
1.SELECT INTO 和 INSERT INTO SELECT 两种表复制语句详解(SQL数据库和Oracle数据库的区别)