返回顶部
首页 > 资讯 > 数据库 >MySQL中几种插入和批量语句实例详解
  • 634
分享到

MySQL中几种插入和批量语句实例详解

2024-04-02 19:04:59 634人浏览 独家记忆
摘要

目录前言1.insert ignore into 2.on duplicate key update 3.replace into 4.insert if not exis

前言

最常见的方式就是为字段设置主键或唯一索引,当插入重复数据时,抛出错误,程序终止,但这会给后续处理带来麻烦,因此需要对插入语句做特殊处理,尽量避开或忽略异常,下面我简单介绍一下,感兴趣的朋友可以尝试一下:

这里为了方便演示,我新建了一个user测试表,主要有id,username,sex,address这4个字段,其中主键为id(自增),同时对username字段设置了唯一索引(idx_username)

1.insert ignore into

即插入数据时,如果数据存在,则忽略此次插入,前提条件是插入的数据字段设置了主键或唯一索引,测试sql语句如下,当插入本条数据时,Mysql数据库会首先检索已有数据(也就是idx_username索引),如果存在,则忽略本次插入,如果不存在,则正常插入数据:


INSERT IGNORE INTO user (username,sex,address) VALUES ('hanpang','boy','HongKong')

2.on duplicate key update

即插入数据时,如果数据存在,则执行更新操作,前提条件同上,也是插入的数据字段设置了主键或唯一索引,测试SQL语句如下,当插入本条记录时,mysql数据库会首先检索已有数据(idx_username索引),如果存在,则执行update更新操作,如果不存在,则直接插入:


INSERT IGNORE INTO user (username,sex,address) VALUES ('hanpang','boy','HongKong')
on duplicate key update
SEX='boy',address='HongKong'

3.replace into

即插入数据时,如果数据存在,则删除再插入,前提条件同上,插入的数据字段需要设置主键或唯一索引,测试SQL语句如下,当插入本条记录时,MySQL数据库会首先检索已有数据(idx_username索引),如果存在,则先删除旧数据,然后再插入,如果不存在,则直接插入:


REPLACE INTO user (username,sex,address) VALUES ('hanpang','boy','HongKong')

4.insert if not exists

即 insert into … select … where not exist ... ,这种方式适合于插入的数据字段没有设置主键或唯一索引,当插入一条数据时,首先判断MySQL数据库中是否存在这条数据,如果不存在,则正常插入,如果存在,则忽略:


INSERT  INTO user (username,sex,address) 
SELECT 'hanpang','boy','HongKong' FROM user
WHERE NOT EXISTS (SELECT username FROM user WHERE username='hanpang')

5.批量插入数据

上述的插入语句,是可以使用批量插入语句,表数据结构


CREATE TABLE example (
    example_id INT NOT NULL,
    name VARCHAR( 50 ) NOT NULL,
    value VARCHAR( 50 ) NOT NULL,
    other_value VARCHAR( 50 ) NOT NULL
)

个人习惯使用这种批量操作方式,进行SQL语句拼接,但是当你的字符串太长(百万数据)的时候,需要你对mysql设置指令:


INSERT INTO example
VALUES
(100, 'Name 1', 'Value 1', 'Other 1'),
(101, 'Name 2', 'Value 2', 'Other 2'),
(102, 'Name 3', 'Value 3', 'Other 3'),
(103, 'Name 4', 'Value 4', 'Other 4');

实际开发中,我们更加喜欢使用通过程序代码进行批量添加操作(使用事务提交,批量插入数据库),使用上述的方式在插入测试数据或者其他低要求时比较合适,速度确实快。

6.批量更新

(1)replace into 批量更新(记得要有主键或者索引)


INSERT INTO example
VALUES
(100, 'Name 1', 'Value 1', 'Other 1'),
(101, 'Name 2', 'Value 2', 'Other 2'),
(102, 'Name 3', 'Value 3', 'Other 3'),
(103, 'Name 4', 'Value 4', 'Other 4');

(2)insert into ...on duplicate key update批量更新

使用INSERT的时候 有表T(id,A,B,C,D)

插入的时候希望通过A,B索引唯一记录 ,有重复的时候更新C,D


INSERT INTO T(A,B,C,D) VALUES (a,b,c,d) ON DUPLICATE KEY UPDATE C=C+1,D=d 

(3)使用mysql 自带的语句构建批量更新


UPDATE yoiurtable
	SET dingdan = CASE id 
		WHEN 1 THEN 3 
		WHEN 2 THEN 4
		WHEN 3 THEN 5 
		END
WHERE id IN (1,2,3)

(4)创建临时表,先更新临时表,然后从临时表中update


create temporary table tmp(id int(4) primary key,dr varchar(50));
insert into tmp values  (0,'Gone'), (1,'xx'),...(m,'yy');
update test_tbl, tmp set test_tbl.dr=tmp.dr where test_tbl.id=tmp.id;

总结

到此这篇关于MySQL中几种插入和批量语句的文章就介绍到这了,更多相关MySQL插入和批量语句内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

您可能感兴趣的文档:

--结束END--

本文标题: MySQL中几种插入和批量语句实例详解

本文链接: https://lsjlt.com/news/135541.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • MySQL中几种插入和批量语句实例详解
    目录前言1.insert ignore into 2.on duplicate key update 3.replace into 4.insert if not exis...
    99+
    2024-04-02
  • mysql批量插入insert语句
    在MySQL中批量插入数据有几种方法,下面我将介绍其中两种常用的方法: 方法一:使用INSERT INTO … VALUES语句的多值插入 这是一种简单的方式,可以一次性插入多个值。以下是一个示例: ...
    99+
    2023-10-21
    mysql 数据库
  • 详解MySQL批量入库的几种方式
    目录1. MySQL批量入库概述2. Hutool封装jdbc方式测试环境准备3. Jdbc直接或批量执行方式4. MyBatis批量入库方式5. MySQL批量入库总结1. MyS...
    99+
    2023-02-03
    MySQL批量入库
  • mysql中用insert语句批量插入数据的方法
    这篇文章将为大家详细讲解有关mysql中用insert语句批量插入数据的方法,文章内容质量较高,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。INSERT INTO 语句用于向表中插入新记录...
    99+
    2024-04-02
  • mybatis和mybatisplus批量插入问题示例详解
    目录1. 思路分析:2. rewriteBatchedStatements=true3.使用mybatis批量插入:4. 使用mybatisplus批量插入5业务场景一对多怎么处理:...
    99+
    2023-05-15
    mybatis批量插数据 mybatisplus批量插入 mybatis-plus批量insert
  • SQL Server批量插入数据案例详解
    在SQL Server 中插入一条数据使用Insert语句,但是如果想要批量插入一堆数据的话,循环使用Insert不仅效率低,而且会导致SQL一系统性能问题。下面介绍SQL Serv...
    99+
    2024-04-02
  • Mysql中怎么实现批量插入
    本篇文章为大家展示了Mysql中怎么实现批量插入,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。 1.创建测试表:create table...
    99+
    2024-04-02
  • MySQL批量数据插入或修改的几种方法比较
    本文主要给大家介绍MySQL批量数据插入或修改的几种方法比较,文章内容都是笔者用心摘选和编辑的,具有一定的针对性,对大家的参考意义还是比较大的,下面跟笔者一起了解下MySQL批量数据插入或修改的几种方法比较...
    99+
    2024-04-02
  • MyBatis批量插入数据的三种方法实例
    目录前言准备工作1.循环单次插入2.MP批量插入①控制器实现②业务逻辑层实现③数据持久层实现MP性能测试MP源码分析3.原生批量插入①业务逻辑层扩展②数据持久层扩展③添加UserMa...
    99+
    2024-04-02
  • mysql大批量插入数据的4种方法示例
    前言 本文主要给大家介绍了关于mysql大批量插入数据的4种方法,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧 方法一:循环插入 这个也是最普通的方式,如果数据量不是很大,可以使用,但是...
    99+
    2024-04-02
  • MySQL大批量插入数据时怎么优化SQL语句
    这篇文章主要讲解了“MySQL大批量插入数据时怎么优化SQL语句”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“MySQL大批量插入数据时怎么优化SQL语句”...
    99+
    2024-04-02
  • 利用MySqlBulkLoader实现批量插入数据的示例详解
    目录介绍1.将List转化为DataTable 2.将DataTable转换为标准的CSV文件 3.CSV文件导入数据到数据库4.使用MySqlBulkLoade...
    99+
    2024-04-02
  • Java实现JDBC批量插入原理详解
    目录一、说明二、实验介绍三、正式实验首先测试mysql接下来测试oracle四、存储过程五、总结一、说明 在JDBC中,executeBatch这个方法可以将多条dml语句批量执行,...
    99+
    2023-03-11
    Java JDBC实现批量插入 Java JDBC批量插入 Java JDBC插入
  • mysql中怎么实现循环批量插入
    mysql中怎么实现循环批量插入,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。数据结构寻思着分页时标准列分主键列、索引列、普通列3种场景,...
    99+
    2024-04-02
  • MySQL中Replace语句用法实例详解
    目录前言一、replace into函数二、replace into 、insert ignore 和 insert into的区别三、replace函数总结前言 replace into平时在开发中很少用到,这次是因为...
    99+
    2022-08-08
    mysql的replace用法 mysql中replace mysql中replace语句
  • MySQL和Oracle批量插入SQL的通用写法示例
    目录举个例子:通用写法:总结举个例子: 现在要批量新增User对象到数据库USER表中 public class User{ //姓名 private Strin...
    99+
    2024-04-02
  • MySQL select、insert、update批量操作语句代码实例
      项目中经常的需要使用批量操作语句对数据进行操作,使用批量语句的时候需要注意MySQL数据库的条件限制,这里主要是数据的大小限制,这里对批量插入、批量查找及批量更新的基础操作进行下简单的汇总。 批量insert插入...
    99+
    2022-05-30
    MySQL select insert update 批量操作 语句
  • mysql中如何使用LOAD语句批量录入数据
    这篇文章将为大家详细讲解有关mysql中如何使用LOAD语句批量录入数据,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。  mysql怎么使用LOAD语句批量...
    99+
    2024-04-02
  • 如何实现MySQL中插入数据的语句?
    如何实现MySQL中插入数据的语句?在使用MySQL数据库时,插入数据是一项非常基础且常见的操作。通过插入数据,可以将新的记录添加到数据库表中,为业务操作提供支持。本文将介绍如何使用MySQL中的INSERT语句来实现数据插入操作,并提供具...
    99+
    2023-11-08
    语句 关键词:MySQL 插入数据
  • mybatis实现批量插入并返回主键(xml和注解两种方法)
    目录mybatis批量插入并返回主键(xml和注解两种方法)mybatis批量插入xml形式注解形式mybatis批量插入并返回主键笔记mapper中的代码xml中的代码,colle...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作