1、常规INSERT写法

 

INSERT INTO ... VALUES (...); INSERT INTO 表名( `字段1`, `字段2`) VALUES ('字段1的值', '字段2的值');

2、SELECT语句返回值INSERT


INSERT INTO ...VALUES (..., (select ...)); INSERT INTO 表名1(`字段1`, `字段2`) VALUES (字段1的值, (select 查询字段 from 表名2 where 条件));

也可以变化为查询多个字段,再新增数据


INSERT INTO ...VALUES (select ...); INSERT IGNORE INTO `表名1` ( `字段1`, `字段2` ) SELECT `字段3` AS 字段1, '字段4' AS 字段2 FROM `表名2` WHERE 条件 注意:查询出来必须只有一个行

3、批量多行INSERT


INSERT INTO ... VALUES (...), (...),(...); INSERT INTO 表名(字段1, 字段2) VALUES (字段1数据, 字段2数据), (字段1数据, 字段2数据), (字段1数据, 字段2数据);

或者多行查询后新增


INSERT INTO ... VALUES (...,select...), (...,select...),(...,select...);

INSERT INTO 表名1(`字段1`, `字段2`) VALUES (字段1的值, (select 查询字段 from 表名2 where 条件)), (字段1的值, (select 查询字段 from 表名3 where 条件)), (字段1的值, (select 查询字段 from 表名4 where 条件));

或者使用union all:


INSERT INTO ... (SELECT ...,(select ...) ) union all (SELECT ...,(select ...) ) union all (SELECT ...,(select ...) );
INSERT INTO 表名1 (`字段1`, `字段2`) (SELECT 字段1的值,(select 查询字段 from 表名2 where 条件) FROM 表名3 WHERE 条件) union all (SELECT 字段1的值,(select 查询字段 from 表名2 where 条件) FROM 表名3 WHERE 条件) union all (SELECT 字段1的值,(select 查询字段 from 表名3 where 条件) FROM 表名4 WHERE 条件);

SQL INSERT批量插入方式的更多相关文章

  1. 【java】[sql]使用Java程序向MySql数据库插入一千万条记录,各种方式的比较,最后发现insert批量插入方式对效率提升最明显

    我的数据库环境是mysql Ver 14.14 Distrib 5.6.45, for Linux (x86_64) using EditLine wrapper 这个数据库是安装在T440p的虚拟机 ...

  2. 【JDBC】使用Spring提供的JDBCTemplate通过Statement向MySql数据库插入千万条数据,耗时4m55s,使用insert语句批量插入方式二

    这回依然是使用 insert批量插入这种方式 insert into emp(name,age,cdate) values ('A' , 20, '2019-10-13 00:00:00'), ('B ...

  3. INSERT: 批量插入结果集方式

    INSERT: 批量插入结果集 insert into table select x,y from A UNION select z,k from B ; insert into table sele ...

  4. SQL 2005批量插入数据的二种方法

    SQL 2005批量插入数据的二种方法 Posted on 2010-07-22 18:13 moss_tan_jun 阅读(2635) 评论(2) 编辑 收藏 在SQL Server 中插入一条数据 ...

  5. 【MySQL】insert批量插入优化方案

    对于一些数据量较大的系统,数据库面临的问题除了查询效率低下,还有就是数据入库时间长.特别像报表系统,每天花费在数据导入上的时间可能会长达几个小时或十几个小时之久.因此,优化数据库插入性能是很有意义的. ...

  6. SQL Server 批量插入数据方案 SqlBulkCopy 的简单封装,让批量插入更方便

    一.Sql Server插入方案介绍 关于 SqlServer 批量插入的方式,有三种比较常用的插入方式,Insert.BatchInsert.SqlBulkCopy,下面我们对比以下三种方案的速度 ...

  7. SQL Server 批量插入数据的两种方法

    在SQL Server 中插入一条数据使用Insert语句,但是如果想要批量插入一堆数据的话,循环使用Insert不仅效率低,而且会导致SQL一系统性能问题.下面介绍 SQL Server支持的两种批 ...

  8. SQL Server 批量插入数据的两种方法(转)

    此文原创自CSDN TJVictor专栏:http://blog.csdn.net/tjvictor/archive/2009/07/18/4360030.aspx 在SQL Server 中插入一条 ...

  9. 转:SQL Server 批量插入数据的两种方法

    在SQL Server 中插入一条数据使用Insert语句,但是如果想要批量插入一堆数据的话,循环使用Insert不仅效率低,而且会导致SQL一系统性能问题.下面介绍SQL Server支持的两种批量 ...

  10. SQL Server 批量插入

    使用场景 在项目中,涉及到数据库表变更时,可能会需要将一个或多个表中的数据迁移到另一个表中. 这时用sql去执行会很方便! sql语句 //SQL批量插入 create table #ttableNa ...

随机推荐

  1. Ubuntu 20.04编译opencv-3.1.0时报错 error: 'CODEC_FLAG_GLOBAL_HEADER' was not declared in this scope

    Ubuntu 20.04源码编译安装opencv320 报错 error: 'CODEC_FLAG_GLOBAL_HEADER' was not declared in this scope的解决办法 ...

  2. 如何使用vs将现有的项目或者文件夹(尤其是多层目录的)添加到项目中

    在Visual Studio中将现有的项目或者文件夹(尤其是多层目录的)添加到项目解决方案中,步骤如下: 1.将现有项目或文件夹拷贝到指定目录下: 2.解决方案右上有个显示所有文件的按钮,如下图所示: ...

  3. 这些小 Bug,99% 的程序员都写过!

    "程序怎么运行不了,不应该啊?" "程序怎么能运行了,不应该啊!" 这句话是不是让程序员朋友们的 DNA 动了呢?今天鱼皮分享一些新手程序员常犯的小 Bug,很 ...

  4. HTTP协议超级详解【转载】

    HTTP协议简介 超文本传输协议(英文:HyperText Transfer Protocol,缩写:HTTP)是一种用于分布式.协作式和超媒体信息系统的应用层协议.HTTP是万维网的数据通信的基础. ...

  5. Docker Inspect 模板

    Docker 使用Go 模板,您可以使用它来操作某些命令和日志驱动程序的输出格式. Docker 提供了一组基本函数来操作模板元素.所有这些示例都使用该docker inspect命令,但许多其他 C ...

  6. Docker核心技术及架构

  7. 搭建 VuePress 站点必做的 10 个优化

    前言 在 <一篇带你用 VuePress + Github Pages 搭建博客>中,我们使用 VuePress 搭建了一个博客,最终的效果查看:TypeScript 中文文档. 在搭建这 ...

  8. Iceberg根据快照查看文件,根据文件查看哪个快照写入

    一.背景 用户查询iceberg表时报文件为空,因为存在写入和治理程序同时操作iceberg表,需要查看空文件是哪个快照产生的,方便确定是flink写入缺陷还是spark治理缺陷 二.通过Sql查询文 ...

  9. Hetao P1031 萌萌题 题解 [ 蓝 ] [ 线性 dp ]

    萌萌题:一道结合了观察性质的线性 dp. 观察 我们先考虑极端情况:所有数相同,所有数降序排列两种情况. 对于所有数相同的情况,我们发现,最终可以合并出来的区间,最多只有 \(n \log n\) 个 ...

  10. 安川机器人HW1171766-A本体线缆维修详解

    随着工业自动化程度的不断提高,安川机器人在生产线上的应用越来越广泛.然而,在长期运行过程中,安川机器人本体线缆可能会出现磨损.老化.断裂问题,这些问题不仅会影响机器人的正常运行,还可能导致生产线的停滞 ...