Mysql数据库内的事务特性【面试点】


​🕶️师兄简介:机械专业,通过自学成功进入IT领域,求学期间实现经济独立,对自学、兼职、计算机、学习规划等有独到见解!「点击了解更多


🤖师兄致力解决在大学生活与学习中遇到的各种问题.


🎁 公众号「渣师兄」内回复「渣学」可获得超 5T 的新生见面礼!


🔗官方网站: 渣学网 →「zhaxueit.cn」→ 大学生活与学习一站式解决方案.


🙏找师兄帮忙「无偿」请➕💓:zhaxueit

📓进资源群「每日分享」【免费】(坑位有限)也请➕💓:zhaxueit 并备注「进群」

👀个人主页:@渣师兄 ,欢迎关注、私信师兄!


🐐 登高必自卑,行远必自迩.
🍇 我始终坚信越努力越幸运
⭐️ 那些打不倒我们的终将会让我们变得强大
🍑 希望在编程道路上深耕的小伙伴都会越来越好



事务概念及特性【面试题】

事物的使用场景

答:假设控制数据库查询某些数据需要好几条SQL语句,而且这几条语句要么全都执行成功,要么全都执行失败,我们就可以把这几条SQL语句加到事物当中!比如说去银行给别人汇钱操作,分为 查询余额、你给别人汇款操作、别人收款操作,要么这几个步骤全部执行成功,要么这几个步骤全部执行失败!

简而言之,数据库的事务,就是当执行某操作,其中一个步骤失败,就回到未执行前的状态!要么事务所有步骤全部执行成功,要么全部失败!

事务功能:保证某个操作要么一定成功执行,要么一定失败执行

事务的四大特性(ACID)

1.原子性:一个事物必须被视为不可分割的最小单元,也就是事务内的所有步骤都是不可分割,要么所有步骤全部成功执行,要么全都失败回滚

2.一致性:数据库总是从一个状态转换到另外一个状态,汇钱例子,我向你打款500元,我余额减少500,你的余额必须增加500

3.隔离性:一个事务所做的修改在最终提交以前,对外是不可见的,例如汇款,我的余额600,正在向你汇款500,汇款的过程未结束时,别人是不可在用你卡向别人汇款的,因为他看到你的余额还是600元

4.持久性:一旦事务提交,则其所做的修改将永久保存到数据库

图示

image-20211012151606508

事务使用【重点】

什么是表引擎以及怎么查看数据表表引擎分类

答:表引擎就是数据表在系统中的存储方式

查看数据表表引擎分类语法:show engines;

代码演示:

image-20211012151624749

怎么查看数据表使用的是什么表引擎

语法:show create table 数据表名;

代码演示:

image-20211012151633154

begin、commit、rollback关键字对事务的影响

begin:开启事务,开启事务之后对数据库的更改都要符合事务的使用规范

commit:提交事务,开启事务后对数据库修改数据,如果不 commit 一下,别人看见的数据还是未修改之前的,所以数据修改完成后,需要commit才能正式生效,注意 commit之后 在 rollback 不能回滚之前的数据库状态

rollback:事务回滚,开启事务后修改数据,没有 commit 之前,执行 rollback后,数据库会回到事务begin之前的状态

注意事项:在事务开启之后,执行了 commit 或者 rollback 之后,事务就关闭了,想在再次开启事务,需再次执行 begin 指令!

代码演示:

image-20211012151646638

image-20211012151656081

验证事务的ACID特性【重点】

目标:掌握如何验证事务的隔离性(I)

如何验证事务的隔离性(I)

答:LINUX同时开启两个客户端,一个客户端开启事务,对数据进行修改,并且不要commit与rollback(代表事务没有结束),另一个客户端不需要开启事务,同时对这个数据进行更改,就会发现没开启事务的更改数据不成功!

代码演示:

image-20211012151709986

持续更新中…

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

渣师兄

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值