批量插入

表结构一样或类似

如果两张表的结构一样,例如一个表的结构和另一个表的结构一样,只是其中一张是临时表,而另一张表是存储数据的表,我们需要进行一次表的迁移的话,我们可以这样。 
insert into tb1 需要的列名 select 按照前面写上需要的列名 from tb2

insert into tb1 * select * from tb2

或者

insert into tb1 id,name,address select id,name,address from tb2

普通的批量插入

如果对sql语句不熟悉,或者是持久层的框架,大部分是这么写的

INSERT INTO tb_test(ID,NAME) VALUES(1,'zhangsan');

INSERT INTO tb_test(ID,NAME) VALUES(2,'lisi');

INSERT INTO tb_test(ID,NAME) VALUES(3,'wangwu');

但是按照这种做法,我尝试了一下,一次插入2000条数据,大概需要2分钟,但是如果我们用union all,如下:

INSERT INTO tb_test(ID,NAME)

SELECT 4,'zhangsan'

UNION ALL

SELECT 5,'lisi'

UNION ALL

SELECT 6,'wangwu' ;

同样是2000条数据,union all 方法是12秒。第二种方法是先将我们要插入的数据总结成一张表,然后进行表插入,这样的效果明显是比一个一个的插入快的。

批量更新

我们知道我们跟新一般的跟着条件的,所以例如我们更新一个实体集合的话,我们也是一个一个的更新,同样,如果我们程序中利用for循环来批量更细的话,我们就得重复着,打开数据库,更新,关闭数据库,而且我们的大部分时间都是消耗在打开数据库,关闭数据库上边了,而且批量更新通常需要依据条件来判断更新哪条数据,但是一个sql中只能有一个where,所以union all显然是不行的。 
但是我在以前的博客写过case when的写法,大家可以向一下,where就好像我们的if(条件)的“条件”,而他就好像我们的case 的when一样,所以我们可以用case when 来实现多“where”,这样的话就能实现多条记录更新的问题。代码如下:update tb_test SET name = 'zhangsan' case id

when '1' then 'yi'

when '2' then 'er'

when '3' then 'san'

end,

address='zhongguo' case sex

when '女' then 'femail'

when '男' then 'mail'

end

where *****

上边的语句就是当人们的名称是zhangsan的时候就批量更细id为汉语拼音,当人们的居住地址的时候就把他们的性别写成英文。

批量删除

在这里主要介绍下Sql批量插入的用法,让我们先看下批量删除一般如何来做。
1.批量删除很简单,大家可能都用过:


DELETE FROM TestTable WHERE ID IN (1, 3, 54, 68) --sql2005下运行通过

当用户在界面上不连续的选择多项进行删除时,该语句比循环调用多次删除或多条delete语句中间加分号一次调用等方法都高效的多。

SQL-批量插入和批量更新的更多相关文章

  1. spring data jpa开启批量插入、批量更新

    spring data jpa开启批量插入.批量更新 原文链接:https://www.cnblogs.com/blog5277/p/10661096.html 原文作者:博客园--曲高终和寡 *** ...

  2. mybatis+mysql批量插入和批量更新、存在及更新

    mybatis+mysql批量插入和批量更新 一.批量插入 批量插入数据使用的sql语句是: insert into table (字段一,字段二,字段三) values(xx,xx,xx),(oo, ...

  3. MongoDB与传统数据库的使用区别——批量插入与批量查询

    我在百X知道上回答问题时经常遇到类似与这样的问题:MongoDB有没有像MySQL一样的ODBC驱动?MongoDB能不能像MySQL一样获取字段名称或类型. 我的回答是:不行,因为MongoDB不是 ...

  4. oracle 在xml中批量插入,批量修改及多组条件查询

    最近公司用ibatis开发项目,本来可以用存储过程处理批量插入,批量修改及多组条件查询:但由于使用模块相对较小,暂时就在xml中配置,以前没有在xml做过类似处理,有必要记录一下:好了,代码如下: & ...

  5. MySQL 避免重复数据的批量插入与批量更新

    [转发] 导读 我们在向数据库里批量插入数据的时候,会遇到要将原有主键或者unique索引所在记录更新的情况,而如果没有主键或者unique索引冲突的时候,直接执行插入操作. 这种情况下,有三种方式执 ...

  6. Mybatis 批量插入、批量更新

            合理的使用批量插入.更新对性能优化有很大的作用,速度明显快了N倍.         要注意数据库连接串后面要新增:&allowMultiQueries=true,表示一个sql ...

  7. Mybatis批量插入、批量更新

    合理的使用批量插入.更新对优化有很大的作用,速度明显快了N倍. 数据库连接串后面要新增:&allowMultiQueries=true 批量插入的最大限制主要是看你整条sql占用的大小,所以可 ...

  8. mybatis批量插入和批量更新

    批量插入数据使用的sql语句是: insert into table (aa,bb,cc) values(xx,xx,xx),(oo,oo,oo) mybatis中mapper.xml的代码如下: & ...

  9. mybatis+mysql批量插入和批量更新

    一.批量插入 批量插入数据使用的sql语句是: insert into table (字段一,字段二,字段三) values(xx,xx,xx),(oo,oo,oo) mybatis中mapper.x ...

  10. PHP框架 Laravel Eloquent ORM 批量插入数据 && 批量更新目前没有

    foreach ($products as $v=>$a) { $count[] = array('product_name' => $a['name'], 'product_weight ...

随机推荐

  1. What is mobile platform?

    高屋建瓴 From Up to Down Outside into inside The Internet Of Things. http://wenku.baidu.com/view/5cdc026 ...

  2. http:origin,referer和host区别

    发起一个ajax请求时,request header里面有三个属性会涉及请求源信息.前端可能用不到这些值,但是,后台业务系统会比较关心它们,场景可能有: 处理跨域请求时,必须判断来源请求方是否合法:后 ...

  3. java:错误Error,异常Excepition

    java中throw异常后代码还会继续执行吗 今天遇到一个问题,在下面的代码中,当抛出运行时异常后,后面的代码还会执行吗,是否需要在异常后面加上return语句呢? public void add(i ...

  4. jquery对radio的操作汇总

    1.JQuery控制radio选中和不选中 通过name $("input:radio[name="analyfsftype"]").eq(0).attr(&q ...

  5. Django基础--3

    ORM django一对多的操作 获取表单的三种方式:views 获取对象            .all()      html中获取方式为 row.id,row,host 获取字典         ...

  6. Selenium入门系列3 单个元素的定位方法

    UI自动化首先要识别对象,再操作对象,最后判定实际结果与预期结果是否一致. 这一节学习的是识别单个对象,webdriver提供了8种方式. <a id="idofa" cla ...

  7. Fiddler-1 官网下载及安装

    1 进入Fiddler官网:http://www.telerik.com/fiddler 点击[Free download]:填写一些信息后就可以下载. 2 双击安装包--下一步dinghanhua下 ...

  8. 2017.9.30 Java中引用类型变量的创建及使用&循环的高级

    今日内容介绍 1.引用类型变量的创建及使用 2.流程控制语句之选择语句 3.流程控制语句之循环语句 4.循环高级 ###01创建引用类型变量公式     * A: 创建引用类型变量公式         ...

  9. Hive 配置显示表头和数据库信息

    在 conf/hive-site.xml 中添加如下配置 <property> <name>hive.cli.print.header</name> <val ...

  10. linux awk 内置函数详细介绍(实例)

    这节详细介绍awk内置函数,主要分以下3种类似:算数函数.字符串函数.其它一般函数.时间函数 一.算术函数: 以下算术函数执行与 C 语言中名称相同的子例程相同的操作: 函数名 说明 atan2( y ...