事务

只与 DML 语句有关 ( 关于数据的 增删改 )
一个事务由一条或多条 DML 语句组成,一个事务在提交事务后才会将数据彻底修改到数据库中,再提交前,我们可以用回滚回到指定位置,相当于可以撤回错误操作

在 MySQL 中默认的为 自动提交事务 ,即每执行一条 DML 语句,就提交一次 ( 即不能回滚 ),直接修改在数据库中

事务操作

  1. 开启事务 : start transaction 或 set autocommit=off( 等于 0 也行 )
  2. 提交事务 : commit
  3. 回滚事务 ( 回滚到开启事务点 ) : rollback
  4. 标记事务过程中的保存点 : savepoint 标记名
  5. 删除标记点 : release savepoint 标记名
  6. 回滚事务 ( 回滚到指定标记点 ) : rollback to 标记名
  7. 设置事务隔离等级 ( 当前会话 ) : set session transaction isolation level 等级名 ;
  8. 设置事务隔离等级 ( 全局级 ) : set global transaction isolation level 等级名 ;
  9. 查看事务隔离等级 ( 当前会话 ) : select @@session.tx_isolation ;
  10. 查看事务隔离等级 ( 全局级 ) : select @@global.tx_isolation ;

事务的四个性质

原子性 ( A )

原子性是指事务过程中的操作,对数据的修改要么全部执行成功,要么全部失败,即相当于事务是最小的工作单元,不可再分

一致性 ( C )

一致性是指执行事务前后的状态要一致,可以理解为数据一致性
( 听大佬这么说 一致性强调的最终状态,要么是初始状态(有可能事务回滚了),要么是最终状态( 事务成功执行后 )。原子性,隔离性,持久性这三个特性是为了约束事务最终实现数据的一致性,我感觉,原子性和一致性虽然很像,但是一个强调的是操作,一个强调的是状态,我们对出数据的操作(原子性),对事务之间的隔离(隔离性),对最终状态的保存(持久性),都是为了完成数据的全部正确修改(一致性) )

隔离性 ( I )

不同的事务之间,具有一定的隔离等级,控制事务之间相互影响的程度( 可以设置隔离等级 )

持久性 ( D )

事务最终结束时,事务对数据的操作即被持久化地保存到数据库中,持久化地保存在硬盘上

事务之间的隔离性 ( 从低到高 )

如何简单的并发 ( 直接多开几个 MySQL 窗口就行了 )

读未提交 : read uncommitted

会导致脏读现象 ( 即会读到另一个事务未提交的数据 )

读已提交 : read committed

解决了脏读现象 ( 即只能读到其他事务提交之后的数据 )
但是出现了不可重复读现象 ( 即读取过程中,可能多次读取的数据不相同了,别的事务改变了数据 )
( 是 Oracle 默认的隔离级别 )

可重复读 : repeatable read

解决了不可重复读现象 ( 在事务开启后,每一次读取的数据都是相同的 )
但是出现了幻读现象 ( 即读到的数据可能已经不存在,或已经被修改了 )
( 是 MySQL 默认的隔离级别 )

序列化 ( 串行化 ) : serializable

解决了幻读现象 ( 直接关闭了并发,只能一个事务一个事务进行 )

数据库基础笔记(MySQL)6 —— 基础事务相关推荐

  1. 【数据库基础】01_数据库概述与MySQL语法基础

    1. 数据库应用 1.1 概述 1.1.1 什么是数据库 简而言之,就是存储数据,管理数据的仓库. 数据库的好处 持久化数据到本地. 可以实现结构化查询,方便管理. DB:数据库(database): ...

  2. Oracle数据库学习笔记(七)--事务及数据的增删改查

    事务的概念 事务是逻辑上的一组操作,要么都执行,要么都不执行. 事务最经典也经常被拿出来说的例子就是转账了.假如小明要给小红转账 1000 元,这个转账会涉及到两个关键操作就是:将小明的余额减少 10 ...

  3. 数据库设计笔记——MySQL基础知识(四)

    概述 关系型数据库--由表来存储相关的数据,MySQL,SQL Server,Oracle等都是关系型数据库: 元数据:用于集成并管理数据. MySQL数据库 用户数据库:用户根据需求创建数据库 系统 ...

  4. 数据库简介与 Mysql 服务基础

    文章目录 前言 一.数据库系统发展史 二.数据库基本概念 三.主流数据库介绍 四.数据库类型 1. 关系型数据库 2. 非关系型数据库 3. 时序数据库 TSD 五.Mysql 数据库 1. MySQ ...

  5. Python基础笔记_Day01_计算机基础知识和Python开发环境搭建

    Day01_计算机基础知识和Python开发环境搭建 目录 01.01_计算机基础知识(计算机概述)(了解) 01.02_计算机基础知识(软件开发和计算机语言概述)(了解) 01.03_计算机基础知识 ...

  6. 数据库学习笔记—MySQL技术nei幕—第一章—MySQL体系结构和存储引擎

    数据库和实例 数据库和实例很容易混淆,如果要更加深入地理解MySQL,将这两个概念区分开来是必不可少的. 数据库是物理操作系统文件或其他形式文件类型的集合.就比如在MySQL数据库中,数据库文件可以是 ...

  7. 免费python基础笔记_python的基础练习笔记

    由于之前有学习过的python的缘故,这次的基础练习算是对知识的巩固的加深,在练习的过程中还是出现一些丢失符号的低级错误,不过动过改正加深了自己的影响,对函数的理解也更加深刻.总的来说虽然是复习,但收 ...

  8. mysql数据库学号数据类型_数据库学习笔记——MySQL数据类型

    一.数据类型: 1.整型(xxxint) 2.浮点型(float和double) 3.定点数(decimal) 4.字符串(char,varchar,xxxtext) 5.二进制数据(xxxBlob) ...

  9. python语言基础笔记_Python语言 基础知识笔记

    背景知识 Python2 的默认编码是 ascii,Python3 的默认编码是 utf-8 输入输出 Python2 提供了 input,raw_input,print 等用于输入输出,但在 Pyt ...

  10. java编程基础笔记_Java编程基础阶段笔记 day01 Java语言概述

    常用的DOS命令 dir :    列出当前目录下的文件以及文件夹 md :   创建目录 rd :     删除目录 cd :    进入指定目录 cd.. :  退回到上一级目录 cd\:     ...

最新文章

  1. Python 进阶_闭包 amp; 装饰器
  2. oracle中怎么用累计,oracle实现累加,累计百分比计算
  3. 你的「所见所闻」,才是电视的核心竞争力
  4. 修改RAC VIP IP
  5. 阿里云+wordpress搭建个人网站及博客
  6. datatable的使用
  7. 达内android 代码,深圳达内Android网页源码查看器.pdf
  8. 网页中引用两个css冲突怎么办
  9. vs2015web开发_2015年最佳10+ Web开发工具和服务
  10. 商业智能bi能带来什么价值
  11. 常规英文字体 电商_最强电商美工逆袭系列1——最全的电商字体应用详解
  12. CRM系统实现企业管理高效协同
  13. Linux下sh文件执行权限不够
  14. 清理或破坏病毒流氓若干
  15. ABeam Recruiting | ABeam旗下艾宾信息技术开发(大连)2023届校招正式开启
  16. 对圆柱面的曲面积分_积分曲面为圆柱面的曲面积分的计算
  17. ai人工智能测面相 准吗_金融界的AI:如何最终开始相信自己的回测[1/3]
  18. Matlab坐标系绘制
  19. 如何通过官网下载JDK 每一步详细附图
  20. Luogu 3371【模板】单源最短路径

热门文章

  1. Maven学习总结(四)——Maven核心概念
  2. gluoncv 训练自己的数据集,进行目标检测
  3. 临江市领导参观视察域乎 —— 积极探索、稳妥布局“区块链+农业”
  4. h5做的app和原生app的区别
  5. 2、使用rpm包安装grafana
  6. 网友脑洞大开 用 Emoji 开发“俏皮”编程语言
  7. Android RecyclerView添加Header头部
  8. Mybatis + SpringMVC + Maven实现分页查询
  9. MIT自然语言处理第五讲:最大熵和对数线性模型(第一部分)
  10. Android中Activity共享变量的另一方法:Application context