sql--批量操作数据

使用MyBatis批量查询(select)、批量插入(insert)、批量更新(update)、批量删除(delete) 记录:412 场景:使用MyBatis批量查询(select)、批量插入(insert)、批量更新(update)、批量删除(delete)操作MySQL数据库。 阅读详情

开启事务(注解)

@Transactional(rollbackFor = Exception.class, propagation = Propagation.REQUIRES_NEW)

sql–批量添加数据

注意:如果不加separator=","会导致产生的sql语句有问题,编译报sql语法错误;没有那个分割符产生的sql: insert into examdetial (idcard,enrollnumber…) VALUES (?,?..) (?,?..) ,即两个(?,?,)间少了一个逗号

 @Insert("<script>" +
            "insert into `examdetial` (idcard,enrollnumber,exambatch,examnum,exampost,examsubject)" +
            " VALUES " +
            " <foreach collection='detials' item='person' separator=','> " +
            "(#{person.idcard},#{person.enrollnumber},#{person.exambatch}," +
            " #{person.examnum},#{person.exampost},#{person.examsubject}) " +
            "</foreach>" +
            "</script>"

    )
    int adddlist(@Param("detials") List<Examdetial> examdetialList);

sql–批量删除数据

注意:如果不加separator=","会导致产生的sql语句有问题,编译报sql语法错误;没有那个分割符产生的sql: insert into examdetial (idcard,enrollnumber…) VALUES (?,?..) (?,?..) ,即两个(?,?,)间少了一个逗号

   @Delete("<script>" +
            "DELETE FROM `examdetial` WHERE enrollNumber IN " +
            "<foreach item='item' index='index' collection='par' open='(' separator=',' close=')'>" +
            "#{item} " +
            "</foreach>" +
            "</script>"  )
    Integer deleteExamnees(@Param("par") List<String> parlist);

sql–行转列 / 列转行

CREATE TABLE `TEST_TB_GRADE` (
  `ID` INT(10) NOT NULL AUTO_INCREMENT,
  `USER_NAME` VARCHAR(20) DEFAULT NULL,
  `COURSE` VARCHAR(20) DEFAULT NULL,
  `SCORE` FLOAT DEFAULT '0',
  PRIMARY KEY (`ID`)
) ENGINE=INNODB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;

INSERT INTO TEST_TB_GRADE(USER_NAME, COURSE, SCORE)  VALUES
("张三", "数学", 34),
("张三", "语文", 58),
("张三", "英语", 58),
("李四", "数学", 45),
("李四", "语文", 87),
("李四", "英语", 45),
("王五", "数学", 76),
("王五", "语文", 34),
("王五", "英语", 89);

SELECT user_name ,
    MAX(CASE course WHEN '数学' THEN score ELSE 0 END ) 数学,
    MAX(CASE course WHEN '语文' THEN score ELSE 0 END ) 语文,
    MAX(CASE course WHEN '英语' THEN score ELSE 0 END ) 英语
FROM test_tb_grade
GROUP BY USER_NAME;

MySQL批量插入数据时如果存在就更新,不存在就插入

首先在这里我们给stuid字段建立一个唯一索引,要注意的是唯一索引项不能够存储中文,否则添加索引为报错,如果表没有唯一键或没有设置合适的唯一约束,“INSERT INTO … ON DUPLICATE KEY UPDATE” 将不会生效。
在这里插入图片描述
接下来在SQL中 加入 ON DUPLICATE KEY UPDATE 。。。(。。。是你想要更新的那些字段)
在这里插入图片描述

sql — 将一个表的数据更新至另一个表

INSERT INTO `stuscore` (stuid, kemu, defen)
	(SELECT stuid,kemu,defen FROM `opresults`  op
	LEFT JOIN `stulinkscore` lin  ON op.idcard = lin.zcard WHERE zid IS NOT NULL )

mysql 多表联合删除:当关联表没有数据的时候,其他表数据也无法删除

   DELETE g, w, p FROM `plan_work_grade` g 
   LEFT JOIN `plan_worktype` w ON g.wid = w.id 
   LEFT JOIN `testplans` p ON w.planid = p.id WHERE p.earecode=#{earecode}

使用mybatis 动态批量修改数据

只更新一个字段

Integer updatePasscodeByzcard(List<String> passStuidlist);
<update id="updatePasscodeByzcard">
    UPDATE
    kcstudent
    <set>
      passremark = 1
    </set>
    <where>
      zcard in (
      <foreach collection="list" separator="," item="item">
        #{item}
      </foreach>
      )
    </where>
  </update>

更新多个字段
foreach

int updateKcstudentByzcard(List<Kcstudent> kcstudentList) ;

<update id="updateKcstudentByzcard" parameterType="java.util.List">
    <foreach collection="list" item="item" index="index" separator=";" >
      UPDATE kcstudent
      <set> passremark = #{item.passremark} </set>
      WHERE zcard = #{item.zcard}
    </foreach>
  </update>
十、PL/SQL之批量SQL PL/SQL之批量SQL 阅读详情

相关推荐

mysql快速插入大量数据

最近做性能测试,需要模拟生产环境的数据量,在插入mysql百万、千万级数据的时候发现直接使用插入sql效率极低,百度了一翻,找到几种方式,但用下来还是有很快速的方式,推荐第四种。

m0_58160096的博客 1万+

MySQL、SQL server批量构造数据

工作中常需快速构造百万、千万级别数据量,对于不同数据库,常需要一些不同特定方法快速构造,以下分享个人再MySQL、SQL server数据库批量构造数据的方法。

hauxang的博客 1376

python读取sql文件,批量操作数据库

import pymysql #连接数据库 def getConnect(): conn = pymysql.connect( host='1.1.1.1',#数据库ip port=3306,#数据库port user='root',#数据库名称 passwd='root',#数据库密码 db='test'...

qq_17812167的博客 2606

SQL批量操作大全

SQL批量操作大全

weixin_44840242的博客 2072

sql server批量插入数据库的操作100万条数据

1.数据库中 首先创建表->连接数据库->通过循环插入数据 2.建立测试表 在这里插入代码[c-sharp] view plain copy --Create DataBase create database BulkTestDB; go use BulkTestDB; go --Create Table Create table BulkTestTable( Id int primary key, UserName nvarchar(32), Pwd varchar(16)

ruoyu8836的博客 3799

12、SQL数据操作与批量插入指南

本文详细介绍了数据库中的常见数据操作,包括插入、更新和删除,并重点讲解了如何使用SQL Server的BULK INSERT语句进行批量数据导入。文章还分享了处理常见错误、优化批量插入性能的方法以及相关注意事项,帮助读者更好地管理数据库数据。

ppp33的博客 102

对Oracle数据库批量操作的SQL优化

一次对SQL修改,优化操作速度的记录 我需要把edit_stu表数据查出来批量插入到student_m中, 由于SQL批量操作执行速度特别慢,尝试更换SQL语句解决速度问题 根据需要我有两个方法做这个批量操作: 方法1: <insert id="insert1" parameterType="java.util.HashMap"> begin <for...

风雨的博客 1042

牛客-SQL篇-全部题目-SQL229批量插入数据,不使用replace操作

对于表actor插入如下数据,如果数据已经存在,请忽略(不支持使用replace操作)

SunshineLu2019的博客 599

数据库SQL脚本操作:批量生成和批量运行

数据库SQL脚本操作:批量生成和批量运行

m0_65776770的博客 2442

别再手动配IP了!保姆级教程:用Cisco Packet Tracer搞定DHCP服务器配置(附实验抓包分析)

本文提供了一份详细的Cisco Packet Tracer DHCP服务器配置教程,帮助用户告别手动分配IP的繁琐过程。通过构建多子网实验环境,逐步指导DHCP地址池设置、客户端测试及协议分析,并分享常见问题排查技巧,让网络配置更高效、更智能。

weixin_42535461的博客 340

MATLAB绘图中文乱码终极解决方案:从方框到清晰显示的全面指南

本文提供了MATLAB绘图中文乱码的全面解决方案。针对中文显示为方框的问题,从单次绘图的临时字体设置,到通过修改默认配置实现一劳永逸,再到系统级字体排查与Java环境配置,给出了详细的步骤指南。文章还涵盖了字体名称指定、图像导出防丢失以及跨平台协作等高级技巧,帮助用户彻底解决中文乱码困扰。

weixin_29093017的博客 616

推荐项目:SqlBulkTools——SQL Server的高效数据批量操作利器

推荐项目:SqlBulkTools——SQL Server的高效数据批量操作利器 在大数据处理时代,高效地对数据库进行批量操作是提升应用性能的关键。今天要向大家隆重推荐的是SqlBulkTools——一个专为.NET开发者设计的C#库,旨在提供高性能的SQL Server(从2008版本起)和Azure SQL Database的数据批量插入、更新、删除及合并功能。借助于内部使用的SQLBulk...

gitblog_00155的博客 1108

RTX 50系显卡实战3DGS:从源码编译到避坑指南

本文详细介绍了在RTX 50系显卡上成功运行3D Gaussian Splatting(3DGS)的完整实战指南。针对新显卡架构与旧版预编译包不兼容的核心问题,文章提供了从源码编译CUDA扩展的清晰步骤,包括环境配置、依赖安装、核心模块diff-gaussian-rasterization和simple-knn的编译避坑方法,并涵盖了数据准备、模型训练与实时预览的全流程,帮助开发者高效利用新硬件进行3D重建。

weixin_28314575的博客 264

python数据库操作批量sql执行_利用Python如何批量修改数据库执行Sql文件

利用Python如何批量修改数据库执行Sql文件来源:中文源码网浏览: 次日期:2018年9月2日【下载文档:利用Python如何批量修改数据库执行Sql文件.txt】(友情提示:右键点上行txt文档名->目标另存为)利用Python如何批量修改数据库执行Sql文件 前言由于上篇文章中批量修改了文件,有的时候数据库也需要批量修改一下,之前的做法是使...

weixin_42110038的博客 1861

泛微Ecology9单点登录实战指南:从Token获取到页面跳转

本文提供了一份详尽的泛微Ecology9单点登录实战指南,重点解析了Token跳转式SSO的核心流程。内容涵盖从理解关键参数(如appid、loginid)与一次性Token机制,到通过代码示例演示如何正确调用接口获取Token,并详细说明了拼接不同场景跳转地址的完整规则与安全实践,旨在帮助开发者高效、稳定地实现业务系统与OA门户的无缝集成。

ol789012345的博客 1075

Unlocking Decoding-time Controllability: Gradient-FreeMulti-Objective Alignment with Contrastive Pr

将基于庞大网络语料库训练的大型语言模型(LLMs)(OpenAI,2023;Touvron 等,2023;Google,2023)与人类偏好对齐,是减少产生不安全(Wei 等,2023)、幻觉(Zhang 等,2023b)和有偏见(Gallegos 等,2023)内容的重要一步。随着偏好学习技术(如 PPO(Schulman 等,2017)、DPO(Rafailov 等,2023)及其他变体(Azar 等,2023;Ethayarajh 等,2024;

qq_52053775的博客 1169

由SQL Server 2005大批量数据操作想起的

Normal 0 7.8 磅 0 2 false false false EN-US ZH-CN X-NONE

ChessPlayer的专栏 1224

STM32入门教程:智能汽车控制

智能汽车是近年来快速发展的领域之一,它结合了嵌入式系统、传感器和通信技术,通过智能化的控制算法和决策系统实现自主导航、避障、环境感知等功能。在这篇教程中,我们将以 STM32 微控制器为核心,通过编写代码案例来介绍智能汽车的控制原理和实现方法。步骤三:决策与执行 最后,我们根据传感器数据做出相应的决策,并执行相应的动作。案例:智能汽车的避障功能 在这个案例中,我们将实现智能汽车的避障功能。感知系统负责感知汽车周围的环境,包括障碍物的距离、车辆的角度等信息。下面我们通过一个具体的案例来演示代码的编写。

2401_85258012的博客 929

数据库批量操作 数据复制sql语句

--insert into 新表名(列名) --select 原列名 --from 原表 --导数据 insert into StudentAddress(StudentNo,phone,[address],Email) select StudentNo,phone,[address],Email from Student; select * from studentAddr

myazq的博客 981

基于OpenCV和Dlib的头部姿态估计详细教程

本文详细介绍了基于OpenCV和Dlib的头部姿态估计方法。通过分析2D人脸特征点与3D头部模型的对应关系,利用PnP(Perspective-n-Point)算法求解头部在三维空间中的姿态。文章首先阐述了坐标系统转换原理,包括世界坐标系、相机坐标系和图像坐标系的转换关系,随后深入讲解了PnP问题的数学表述及求解步骤,并提供了使用Dlib检测68个面部特征点的代码示例。最后介绍了3D通用头部模型的构建方法,包括6点和14点模型的选择,为计算机视觉中的头部姿态估计提供了完整的技术实现方案。

FJN110的博客 338

4、基于抽象解释的静态分析器中的跟踪分区与ASTRÉE分析器解析

本博客探讨了基于抽象解释的静态分析器中的跟踪分区技术,并深入解析了ASTRÉE分析器的工作原理和应用。通过示例程序说明了跟踪分区如何提升分析精度,减少误报,以及ASTRÉE如何利用多种数值抽象域(如八角形域、浮点区间线性形式等)来处理复杂的嵌入式C程序。此外,还讨论了ASTRÉE的模块化设计、循环展开优化、用户断言与自动细化的局限性等内容,为保障嵌入式软件的安全性和可靠性提供了理论与实践支持。

kotlin6android的博客 117

SQL批量处理+JDBC操作大数据及工具类的封装

在jdbc的url中添加rewriteBatchedStatements=true参数,可以提高批处理执行效率。在我们进行大批量数据操作的时候,需要采用批处理的方式来提高程序的运行性能,目的是减少跟数据库交互的次数。

GL280599ZL的博客 2203

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

MyBatis单一和批量操作数据库SQL

     insert into user_project_relate (UID, PROJECT_ID, USERPROJ_RELATE_ID,       PROJECT_STATUS, type,PERMISSION_FLAG)     values (#{uid,jdbcType=VARCHAR}, #{projectId,jdbcType=VARCHAR}, #

yoen_qin的专栏 518

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

python数据库操作批量sql执行_使用Python批量修改数据库执行Sql文件

由于上篇文章中批量修改了文件,有的时候数据库也需要批量修改一下,之前的做法是使用宝塔的phpMyAdmin导出一个已经修改好了的sql文件,然后依次去其他数据库里导入,效率不说极低,也算低了,且都是些重复性的劳动,所以打算用Python来批量执行sql环境版本:Python3.6系统:MacOSIDE:PyCharm第三方库:pymysqlShow Codeimport pymysqlhost =...

weixin_39724469的博客 154

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

上一篇: vue使用button带参跳转页面,并接在子页面接收参数
下一篇: java按模板生成word文档
hellotutu
博客等级 码龄7年 102粉丝 53原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值