🕶️师兄简介:机械专业,通过自学成功进入IT领域,求学期间实现经济独立,对自学、兼职、计算机、学习规划等有独到见解!「点击了解更多」
🤖师兄致力解决在大学生活与学习中遇到的各种问题.
🎁 公众号「渣师兄」内回复「渣学」可获得超 5T 的新生见面礼!
🔗官方网站: 渣学网 →「zhaxueit.cn」→ 大学生活与学习一站式解决方案.
🙏找师兄帮忙「无偿」请➕💓:zhaxueit
📓进资源群「每日分享」【免费】(坑位有限)也请➕💓:zhaxueit 并备注「进群」
👀个人主页:@渣师兄 ,欢迎关注、私信师兄!
🐐 登高必自卑,行远必自迩.
🍇 我始终坚信越努力越幸运
⭐️ 那些打不倒我们的终将会让我们变得强大
🍑 希望在编程道路上深耕的小伙伴都会越来越好
文章目录
事务概念及特性【面试题】
事物的使用场景
答:假设控制数据库查询某些数据需要好几条SQL语句,而且这几条语句要么全都执行成功,要么全都执行失败,我们就可以把这几条SQL语句加到事物当中!比如说去银行给别人汇钱操作,分为 查询余额、你给别人汇款操作、别人收款操作,要么这几个步骤全部执行成功,要么这几个步骤全部执行失败!
简而言之,数据库的事务,就是当执行某操作,其中一个步骤失败,就回到未执行前的状态!要么事务所有步骤全部执行成功,要么全部失败!
事务功能:保证某个操作要么一定成功执行,要么一定失败执行
事务的四大特性(ACID)
1.原子性:一个事物必须被视为不可分割的最小单元,也就是事务内的所有步骤都是不可分割,要么所有步骤全部成功执行,要么全都失败回滚
2.一致性:数据库总是从一个状态转换到另外一个状态,汇钱例子,我向你打款500元,我余额减少500,你的余额必须增加500
3.隔离性:一个事务所做的修改在最终提交以前,对外是不可见的,例如汇款,我的余额600,正在向你汇款500,汇款的过程未结束时,别人是不可在用你卡向别人汇款的,因为他看到你的余额还是600元
4.持久性:一旦事务提交,则其所做的修改将永久保存到数据库
图示
事务使用【重点】
什么是表引擎以及怎么查看数据表表引擎分类
答:表引擎就是数据表在系统中的存储方式
查看数据表表引擎分类语法:show engines;
代码演示:
怎么查看数据表使用的是什么表引擎
语法:show create table 数据表名;
代码演示:
begin、commit、rollback关键字对事务的影响
begin:开启事务,开启事务之后对数据库的更改都要符合事务的使用规范
commit:提交事务,开启事务后对数据库修改数据,如果不 commit 一下,别人看见的数据还是未修改之前的,所以数据修改完成后,需要commit才能正式生效,注意 commit之后 在 rollback 不能回滚之前的数据库状态
rollback:事务回滚,开启事务后修改数据,没有 commit 之前,执行 rollback后,数据库会回到事务begin之前的状态
注意事项:在事务开启之后,执行了 commit 或者 rollback 之后,事务就关闭了,想在再次开启事务,需再次执行 begin 指令!
代码演示:
验证事务的ACID特性【重点】
目标:掌握如何验证事务的隔离性(I)
如何验证事务的隔离性(I)
答:LINUX同时开启两个客户端,一个客户端开启事务,对数据进行修改,并且不要commit与rollback(代表事务没有结束),另一个客户端不需要开启事务,同时对这个数据进行更改,就会发现没开启事务的更改数据不成功!
代码演示:
持续更新中…