MySQL中的INSERT ... SELECT语法

博客主要介绍了INSERT…SELECT语法,依据官方文档,该语法可根据SELECT语句结果快速将多行插入表中,能从一个或多个表中选择。还提到可使用此语法进行表复制,最后展示了复制表前后的操作结果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在这里插入图片描述

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

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值