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;
发布了53 篇原创文章 · 获赞 18 · 访问量 7228

猜你喜欢

转载自blog.csdn.net/Nire_Yeyu/article/details/101465455