SQL结构化查询语言 之 DML

TCL:事务控制语句

事务简称:DML

事务的特性(ACID)

学校里数据库考试可能会考这个填空题;
对于以下特性,我会举例子进行说明;

原子性(Atomicity)

一个事务是一个不可分割的工作单位,事务中包括的操作要么都做,要么都不做。
我们以银行转账为例,你这里一旦扣款,别人那里的钱会在同一时间增加,绝对不可能你这边扣钱了,别人没收到钱,或者别人的钱增加了,而你没有扣钱;

一致性(Consistency)

事务必须是使数据库从一个一致性状态变到另一个一致性状态。
和原子性非常相似,就是相当于你扣款了,别人就一定会增加,这种状态的改变在逻辑上是相关联的;

隔离性(Isolation)

一个事务内部的操作及使用的数据对并发的其他事务是隔离的,并发执行的各个事务之间不能互相干扰。
你在给别人转账的时候,别人也可能在给你转账,这是两件不同的事情,相互之间不会干扰;

持久性(Durability)

一个事务一旦提交,它对数据库中数据的改变就应该是永久性的。接下来的其他操作或故障不应该对其有任何影响。
一旦提交,数据会发生永久性的改变;
在这里插入图片描述

TCL语句

DML语句在末提交之前都可以进行回退,提交之后影响到数据库
(1)提交: commit
这就相当是签协议,在最后签名前,你可以随便怎么改,但是一旦协议确认,一提交就不能修改了;

commit;

(2)设置保存点SAVEPOINT
相当于游戏存档;
(3)回退: rollback
相当于撤销,回到之前做标记的位置;

  1. XXXX
    savepoint p1;
    2.XXXX
    savepoint p2;
    3.XXXX
    savepoint p3;
    4.XXXX
    第四个步骤做错 rollback to p3;
delete from stuinfo_yeyu where empno = 7698;
savepoint p2;--做一个标记,名叫p2
delete from stuinfo_yeyu where empno = 7782;
savepoint p3;
delete from stuinfo_yeyu where empno = 7839;
select * from stuinfo_yeyu;
rollback to p2;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值