数据库中的事务操作

1 篇文章 0 订阅
事务控制语言TCL涉及数据库操作的最小单元——事务,包括其原子性、一致性、隔离性和持久性的四个属性。并发事务可能导致脏读、丢失修改、不可重复读和幻读等问题,为解决这些问题,存在不同的事务隔离级别,如读未提交、读已提交、可重复读和序列化读。提交和回滚是管理事务的关键操作,而DDL和DML语句影响事务的自动提交行为。
摘要由CSDN通过智能技术生成

事务控制语言TCL(Transaction Control Language)

1.什么是事务:

①从数据库层面:事务是数据库操作的最小单元
②从业务角度:事务是完整的业务逻辑
③从SQL语句:事务是多条SQL语句的集合

2.事务的属性

1、原子性(atomicity):一个事务中的所有SQL语句,要么全部成功,要么全部失败。
2、一致性(Consistency):事务开始之前和结束之后,数据库的完整性没有被破坏,并且数据状态保持一致。
3、隔离性(Isolation):数据库允许多个事务并发的进行读写或者修改,隔离性可以防止多个事务并发下导致数据不一致的情况。
4、持久性(Durability):事务结束后,对数据的修改是永久的,即使系统故障也不会丢失。

3.并发事务带来的问题

1、脏读(dirty read):事务A在访问数据并进行修改的时候,还没有完成提交操作,事务B对该数据进行了访问,此时事务B获得的就是脏数据。
2、丢失修改(loss to modify):事务A访问了一条数据并修改,事务B随后也对该条数据进行修改,有可能导致事务B的修改覆盖事务A的操作,事务A的修改就被丢失。因此叫丢失修改,也可称更新覆盖。
3、不可重复读(unrepeatable read):事务A内多次读取数据,在执行过程中,事务B对该数据进行了修改,导致了事务A前后读到的数据不一样,因此叫不可重复读。
4、幻读(phantom read):事务A查询了一些数据,事务B并发的插入了一些数据。导致在随后的查询中,事务A发现了一些原来并不存在的数据,就像发生幻觉一样。

【注】:不可重复读和幻读的区别:不可重复读是修改数据,幻读是增加或删除数据。

4.为解决并发事务带来的问题,提出事务的隔离级别

【越高的隔离级别,效率越差】
1、未提交读(read uncommitted):允许别的事务去读取这个事务未提交的数据。会出现并发带来的所有问题。
2、提交读(read committed):事务A只能读到其他已提交的事务,对未提交的事务无法读取。解决了脏读的问题。
3、可重复读(repeatable read):对一个事务多次读取,获得的数据都是一样的。解决了不可重复读的问题
4、序列化读(serializable):最高隔离级别,所有并发带来的问题都与他无关,因为他把事务全部序列化,也就不存在并发了。

【一般数据库默认隔离级别:read committed

–设置整个数据库的隔离级别: SET TRANSACTION ISOLATION LEVEL 隔离级别;
–设置当前会话的隔离级别: ALTER SESSION SET TRANSACTION ISOLATION LEVEL 隔离级别;

5.事务的操作

5.1 事务的开启

默认由系统开启

5.2 事务的关闭

1、DDL(Data Definition Language)DCL(Data Control Language ) 执行完后会自动提交事务

DDL主要的关键字有:create、alter、drop、truncate(清空表里的数据)
DCL主要的关键字有:grant(授权)、revoke(废除某用户或某组或所有用户访问权限)

2、正常关闭数据库或数据库连接的时候会自动提交事务
3、使用 DML(Data Manipulation Language ) 语句时,需要手动提交事务或回滚

DML主要的关键字有:update、delete、insert

5.3 事务操作语句

1、commit(提交事务):让事务对数据库的修改永久保存下来。如果处于未提交的状态,所有的操作都仅保存在会话中。
2、rollback(回滚事务):撤销对数据库做的未提交的修改。
3、savepoint(设置保存点):可以设置一个或多个保存点,发生回滚时,可以选择需要回滚到的保存点,回滚后事务并不会提交结束。
rollback to savepoint 保存点名

以上。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值