没有合适的资源?快使用搜索试试~ 我知道了~
MySQL学习第三章.
资源推荐
资源详情
资源评论
第三讲 MySQL 数据库
课程大纲
课程内容
学习效果
掌握目标
数据库事务
掌握
掌握什么是数据库事务、事
务的 ACID 特性、并发异常
和隔离级别
DCL
了解
了解 DCL 语句来创建用户、
分配权限、修改密码等
索引
掌握
掌握索引概念、优缺点、分
类、创建方式等
存储过程
了解
了解存储过程的含义、作
用、编写和调用方式等。
MySQL
存储引擎
了解
了解 MySQL 的常见存储引擎
和 InnoDB 存储引擎的特点
一、数据库事务
(一)什么是数据库事务
数据库事务是访问并可能操作各种数据项的一个数据库操作(包括读、写)序列,这些操作
要么全部执行,要么全部不执行,是一个不可分割的工作单位。事务由事务开始与事务结束
之间执行的全部数据库操作组成。
例如:银行转账。核心操作包括更新一个账户减去转账金额,更新另一个账户加上转账金额,
要求要同时成功或同时失败。
(二)事务的目的
1、为数据库操作提供了一个从失败中恢复到正常状态的方法,同时提供了数据库即使在异
常状态下仍能保持一致性的方法。
2、当多个应用程序在并发方法数据库时,可以再这些应用程序之间提供一个隔离方法,以
防止彼此的操作互相干扰。
总结:事务的目的就是要提供 3 种方法:1、失败恢复方法。 2、保持一致性的方法。3、操
作隔离的方法。
成功情况下
能将数据从一种状态变为另一种状态,并能够持久化。
异常情况下
1、能将数据恢复到正常状态。
2、要能保证一致性,包含数据的一致性和约束的一致性。
并发情况下
并发的操作之间不能产生相互影响。
(三)事务特性
事务包括 ACID 四个特性,分别是原子性、一致性、隔离性、持久性。
1、原子性(Actomicity)
表示一个事务内的所有操作是一个整体,是一个不可分割的工作单位,要么全部成功,要么
全部失败。
2、一致性(Consistency)
事务前后数据的完整性必须保持一致。
3、隔离性(Isolation)
事务的隔离性是多个用户并发访问数据库时,数据库为每一个用户开启的事务,不能被其他
事务的操作数据所干扰,多个并发事务之间要相互隔离。
4、持久性(Durability)
持久性是指一个事务一旦被提交,它对数据库中数据的改变就是永久性的,接下来即使数据
库发生故障也不应该对其有任何影响。
(四)操作事务
在数据库中,一个事务可以由多条 SQL 语句组成,当然一个事务中也可以只包含一条 SQL 语
句。
MYSQL 中可以有两种方式进行事务的操作:1、自动提交事务。2、手动提交事务。
1、自动提交事务
MySQL 的每一条 DML(增删改)语句都是一个单独的事务,MySQL 默认情况下,在执行每条语
句时都会自动开启一个事务,执行完毕自动提交事务。
当语句执行完成后,数据库中添加了数据。
2、手动提交事务
事务有关的 SQL 语句
SQL 语句
描述
start transaction;
开启事务
commit;
提交事务
rollback;
回滚事务
示例
start transaction; --开启事务
update emp set name='李四' where id=10; -- 更新数据
在没有提交事务时,数据库中的数据不会真正的发生变化
commit;-- 提交事务
事务提交后,数据库中的数据才会真正的变化
示例 2
start transaction; --开启事务
update emp set name='王五' where id=10; -- 更新数据
如果不提交事务,而是回滚事务,数据库中的数据将不会变化
rollback;
3、事务的原理
事务开启之后, 所有的操作都会临时保存到事务日志, 事务日志只有在得到 commit 命令才
会同步到数据表中,其他任何情况都会清空事务日志(rollback,断开连接)
(五)事务的并发异常
在事务并发操作时(例如多个客户端来操作同一个数据库中的同一张表)。可能会出现如下
的问题。
异常
描述
回滚丢失
此种更新丢失是因为回滚的原因,所以叫做回滚丢失。
覆盖丢失
此种更新是因为更新被其他事务覆盖了,所以叫做覆盖更新
脏读
一个事务读取了另一个事务尚未提交的数据
剩余43页未读,继续阅读
资源评论
七十一阿哥
- 粉丝: 338
- 资源: 4
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功