MySQL数据库事务

数据库事务

  1. 什么是事务:指数据库执行的一组操作(增删改)
    要么全都执行,要么全部不执行

  2. 作用:保证数据的一致性,完整性

  3. 事务的特点(ACID特点)
    1)原子性(atomicity):一个事务是不可分割的整体,
    要么全都执行,要么全都不执行
    2)一致性(consistency):事务执行完成后,数据库从一个一致性状态变成下一个一致性状态
    3)隔离性(Isolation):不同的事务不会相互影响
    4)持久性(Durability):一旦事务提交,对数据库的修改会被持久保存到磁盘中
    5)示例:

    第一步:创建测试账户表
    create table acct(
    acct_no varchar(32),
    acct_name varchar(32),
    balance decimal(16,2)
    );
    insert into acct values (‘0001’,‘Jerry’,1000),(‘0002’,‘Tom’,2000);

    第二步:通过事务操作语句,观察事务提交,回滚的作用
    start transaction; – 启动事务
    update acct set balance = balance - 100 where acct_no = ‘0001’;-- 模拟扣付款人的金额
    update acct set balance = balance + 100 where acct_no = ‘0002’;-- 模拟给收款人加金额
    commit; – 事务提交,所修改的数据正式生效
    rollback – 模第二次拟事务回滚
    – 在执行commit之前,重新开启一个mysql客户端
    – 查询acct表的余额(查看事务的隔离性)
    6)如何操作事务

    • 启动事务:
      显式启动:start transaction
      隐式启动:执行insert,update ,delete 操作
    • 提交事务:commit;
    • 回滚:rollback;

    7)使用事务的情况及先决条件

    • 先觉条件:INNODB存储引擎支持事务
    • 使用事务的情况:
      一个操作涉及一组SQL语句(增删改语句)
      需要这一组操作完成后,保证数据的一致性,完整性

    8)事务对效率的影响:数据库事务降低数据库的性能

    • 原因是为了保证数据的一致性,事务的隔离性
    • 事务需要对数据进行加锁,如果有其他事务需要操作这部分加锁的数据,必须等待上一个事务结束(提交,回滚)

    9)事务对哪些语句起作用
    SQL语句按照功能可以分为四类:

    • 数据查询语言(DQL):查询数据,不会修改数据
    • 数据定义语句(DDL):定义库/表/索引
    • 数据操作语言(DML):对数据进行增,删,改
      (数据库事务只对这一类语言起作用)
    • 数据控制语言(DCL):授权/吊销权限,事务管理
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值