MySQL中的INSERT ... SELECT语法

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/Milogenius/article/details/89848646

在这里插入图片描述

一.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数据库的区别)

猜你喜欢

转载自blog.csdn.net/Milogenius/article/details/89848646