【MySQL】MySQL事务保姆级教程(适合MySQL初学者学习)

news2024/12/1 8:57:52

🧑‍💻作者名称:DaenCode
🎤作者简介:啥技术都喜欢捣鼓捣鼓,喜欢分享技术、经验、生活。
😎人生感悟:尝尽人生百味,方知世间冷暖。
📖所属专栏:重温MySQL


在这里插入图片描述


文章目录

  • 🌟前言
  • 🌟事务的定义及作用
  • 🌟事务的特性(ACID)
  • 🌟事务的隔离级别
    • 隔离级别一览表
    • 隔离级别举例解读
      • 读未提交
      • 读已提交
      • 可重复读
  • 🌟事务控制语句
  • 🌟写在最后

🌟前言

无论是在校招、社招,亦或者大学计算机专业、软件工程等相关面试或者考试中,MySQL事务的相关知识都是必不可少的。本文主要为MySQL初学者快速学习MySQL事务保驾护航。


🌟事务的定义及作用

定义:事务是一个不可再此分割的最小工作单元。换句话说事务通常代表一个完整的业务或者业务线。通俗来说,一个业务功能所包含的操作,要么全部成功,要么全部失败
作用

  • 为数据库的操作或者一个完整的业务功能提供一个从失败操作中恢复
    到正常状态的方法,同时保证数据库操作在异常状态下保持一致性。
  • 防止多个应用程序并发访问数据库时,多个应用程序间的操作产生干扰,影响业务功能的正常性。

🌟事务的特性(ACID)

  • 原子性(Atomicity):事务必须是最小的工作单元,一个事务中的所有操作,应该做到:要么全部成功,要么全部失败,否则回滚到初始状态。
  • 一致性(Consistency):事务在开始和结束时,数据必须保持一致状态。通俗说就是让数据保持逻辑上的“合理性”,比如:小明给小红打100块钱,既要让小明的账户减少100,又要让小红的账户上增加100块钱;
  • 隔离性(Isolation):事务的隔离性确保并发执行的事务彼此之间相互隔离,每个事务都感觉不到其他并发事务的存在。独立执行,互不干扰。
  • 持久性(Durability):事务一旦执行成功,数据将会永久保存到数据库中。

🌟事务的隔离级别

隔离级别一览表

隔离级别描述现象
读未提交(Read Uncommitted)最低隔离级别,一个事务可以读取另一个未提交事务的数据。脏读、不可重复读、幻读都可能发生。
读已提交(Read Committed)一个事务只能读取已提交事务的数据。脏读不会发生,但不可重复读和幻读仍然可能发生。
可重复读(Repeatable Read)MySQL默认隔离级别,一个事务在执行过程中多次读取同一行的数据结果都是一致的脏读和不可重复读不会发生,但幻读仍然可能发生。
串行化(Serializable)最高隔离级别,对于同一份数据资源同时只允许一个事务进行读写操作。脏读、不可重复读和幻读都不会发生。

隔离级别举例解读

我们下面来对每个隔离级别,提出具体的例子进行解读,供大家理解。所有的例子都以下表为基础。串行化就不做出具体例子说明了。

idproduct_nameprice
1手机1000
2电脑2000
3平板800

读未提交

1.A查询价格表:select * from price;
2.B修改价格表中平板的价格为100,但是并未提交:update set price=100 where id=3;
3.A再次查询价格表时,平板的价格会显示100。

读已提交

1.A查询价格表:select * from price;
2.B修改价格表中平板的价格为200,并提交:update set price=200 where id=3;
3.A再次查询价格表时,平板的价格会显示200。

可重复读

1.A查询价格表:select * from price;
2.B修改价格表中平板的价格为300,并提交:update set price=300 where id=3;
3.A查询价格表时,平板的价格依然是原数据80。

🌟事务控制语句

控制语句描述
BEGINSTART TRANSACTION开始一个新的事务
COMMIT提交当前事务的修改,使其生效,并永久保存到数据库中
ROLLBACK回滚当前事务的修改,取消事务所做的所有修改
SAVEPOINT savepoint_name创建一个保存点,用于回滚到特定的保存点
RELEASE SAVEPOINT savepoint_name删除指定的保存点
ROLLBACK TO SAVEPOINT savepoint_name回滚到指定的保存点,并取消保存点之后的所有修改

🌟写在最后

最后感谢大家对于本篇博文的阅读,如有不足之处还请大家在评论区留言,以便后续发布更适合大家学习的博文。


请添加图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/768377.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

桥接模式——连接抽象维度和实现维度

桥接模式 bridge pattern 一 定义 桥接模式,是将抽象部分与它的具体实现部分分离,使它们都可以独立地变化。它是将两个不同的维度建立联系。这两个维度通常是指:抽象维度和实现维度。 使用场景 在抽象和具体实现之间需要增加更多的灵活性…

找不到dll的问题解决,loadlibrary 126错误

症状:loadlibrary时,getlasterror返回126,表示是找不到模块错误。来到目录下看到依赖所需的dll均存在 解决办法: 1.下载ProcmonProcmom-监视进程所有的动作资源-CSDN文库https://download.csdn.net/download/gergul/880597622.运…

RocketMQ第四节(部署模式、监控面板等)

1:mq的部署模式 部署方式 | RocketMQ 参考官网。 单机模式:抗风险能力差,单机挂机没服务,单机硬盘损坏,丢失数据 多机(多master没有Slave副本): 多个master采用RAID10磁盘,不会丢…

[java安全]类加载器CommonsCollections3

文章目录 【java安全】类加载器&CommonsCollections3前言java类加载器URLClassLoader利用ClassLoader#defineClass()直接加载字节码 使用TemplatesImpl加载字节码TemplatesImpl中字节码实现AbstractTranslet类 构造未完成POCTrAXFilter类调用newTransformer()InstantiateTr…

【AI绘画Stable Diffusion】高清图像放大+面部修复+一键抠图,谈谈你可能不知道的优化技巧!

一提起后期处理,我猜你可能立马想到的就是图像放大。 今天,我要向你展示的后期处理手法,以及优化技巧。 图片放大算法 如果你常用的是秋叶大佬的整合包,那么你对"R-ESRGAN 4x"和"R-ESRGAN 4x Anime6B"应该…

FPGA单端口RAM——IP核

文章目录 前言一、RAM简介1、随机存储器IP核分类1、RAM IP核2、ROM IP核 2、RAM IP核 二、IP核配置步骤三、源码1、ram_rw驱动文件2、ip_1port_ram顶层文件3、仿真文件4、仿真波形 四、SignalTap II在线调试五、总结六、参考资料 前言 环境: 1、Quartus18.1 2、vsco…

Leetcode-每日一题【1019.链表中的下一个更大结点】

题目 给定一个长度为 n 的链表 head 对于列表中的每个节点,查找下一个 更大节点 的值。也就是说,对于每个节点,找到它旁边的第一个节点的值,这个节点的值 严格大于 它的值。 返回一个整数数组 answer ,其中 answer[…

Servlet的监听器

Servlet常用的监听器 ServletContextAttributeListener 用来感知ServlerContext对象属性变化,比如添加或删除属性变化 ServletContextListener 用来感知ServlerContext对象的创建和销毁的 ServletRequestListener 可以用来监听感知ServletRequest对象的创建和销毁的…

大语言模型(LLM)评估综述

论文地址:https://arxiv.org/abs/2307.03109 Github地址:https://github.com/MLGroupJLU/LLM-eval-survey 一 、背景 随着ChatGPT和GPT-4的推出,大型语言模型(LLM)在学术界和工业界的热度日益升高,这主要…

优雅的设计测试用例

⭐️前言⭐️ 入职以后接触到了公司的具体业务,提升了设计测试用例的能力,于是沉淀出这篇文档与大家分享。 🍉欢迎点赞 👍 收藏 ⭐留言评论 📝私信必回哟😁 🍉博主将持续更新学习记录收获&…

Acwing.905 区间选点(贪心)

题目 给定N个闭区间[a,bi],请你在数轴上选择尽量少的点,使得每个区间内至少包含一个选出的点。输出选择的点的最小数量。 位于区间端点上的点也算作区间内。 输入格式 第一行包含整数N,表示区间数。 接下来N行,每行包含两个整数…

Linux内核《CPU负载计算》

目录 前言一、什么是CPU负载?二、如何计算CPU负载三、计算CPU负载的一个脚本四、top命令详解 前言 在实际的产品开发中,我们往往需要关注CPU的负载,确保程序可以长久稳定的运行,并且能够重复发挥SOC的性能。Linux中提供了一些命令…

ArrayList和LinkedList

ArrayList的注意事项 1、在ArrayList中可以放任意元素,包括空值,任何元素,且可重复添加。 2、ArrayList底层是由数组来实现数据存储的 3、ArrayList基本等同于Vector,除了ArrayList是线程不安全(执行效率高),看源码 在多线程的…

【Linux系列P7】进度条小程序的深度解剖(细节满满)

​​​​​ ​ 前言 大家好吖,欢迎来到 YY 滴 Linux系列 ,热烈欢迎! 本章主要内容面向接触过Linux的老铁,主要内容含 欢迎订阅 YY滴Linux专栏!更多干货持续更新!以下是传送门! 订阅专栏阅读&am…

SpringBoot项目中MVC使用--【SB系列之010】

SpringBoot系列文章目录 SpringBoot 的项目编译即报错处理–SB系列之001 —第一部的其它章节可以通过001链接 SpringBoot项目中WEB页面放哪里–【SB系列之008】 SpringBoot项目中WEB与Controller的联系–【SB系列之009】 ———————————————— 文章目录 SpringBoo…

线程池学习(五)线程工厂、线程池工厂

Executors 定义的Executor, ExecutorService, ScheduledExecutorService, ThreadFactory和Callable类的工厂和实用程序方法,我们称为线程池工厂。ThreadFactory 为定制化创建新线程的对象,我们称为线程工厂 前面几期的学习中,我已经初步会使用线程池了&…

用于公司文件防泄密用的保密软件(企业数据防泄密软件)

防止公司文件泄露是指采取各种措施和方法,以防止公司的敏感和机密文件被未经授权的人员获取、泄露或滥用的行为。 这些文件可能包含公司的商业机密、客户数据、财务信息、研发成果等重要资料,如果泄露给竞争对手、黑客或其他恶意人员,可能会对…

未在本地计算机上注册“microsoft.ACE.oledb.12.0”提供程序。

offiice64位的按装名字短的,office32位的安装名字长的 安装32位的AccessDatabaseEngine.exe,如果使用64位office点击安装32位access时提示无法安装,此时需要: 1.WINR打开运行,输入CMD,进入安装包文件夹 …

AHD模拟高清方案汇总及国产替代方案

由于模拟高清方案对比LVDS数字高清方案在降本、远距离传输的优势明显,及实现方案相对简单,模拟相机一直在车载和安防监控产品上有着较重要的市场地位。伴随着ZM贸易战和境外疫情影响愈来愈趋于严重化,原有外来品牌公司模拟高清方案在产品交期…

LeetCode 75 第五题(345)反转字符串中的元音字母

题目: 示例: 分析: 给一个字符串,将里面的元音字母反转,并且保持非元音字母不变(包括顺序). 字符串反转类型的题,我们都可以使用双指针来解决:定义首尾指针,分别向中间靠拢,直到首尾指针都指向了元音字母,然后交换首尾指针所指的字母,如此不会影响到非元音字母,同时也将元音字…