事务是什么?事务的4个特色(ACID),事务的开启与结束

事务是指做为单个逻辑工做单元执行的一组相关操做。这些操做要求所有完成 或者所有不完成。使用事务是为了保证数据的安全有效。面试

事务有一下四个特色:(ACID数据库

1、原子性(Atomic):事务中全部数据的修改,要么所有执行,要么所有不执行。 安全

2、一致性(Consistence):事务完成时,要使全部全部的数据都保持一致的状态, 换言之:经过事务进行的全部数据修改,必须在全部相关的表中获得反映。 并发

3、隔离性(Isolation):事务应该在另外一个事务对数据的修改前或者修改后进行访问。 spa

4、持久性(Durability):保证事务对数据库的修改是持久有效的,即便发生系统故障, 也不该该丢失。事务

当事务之间发生并发时有几个隔离级别。it

 

 Oracle 默认的隔离级别是 read committedio

丢失更新:两个事务同时存储, 一个存储 100 , 一个存储 200,最终可能至存储了 200 或者 100,那另外一个的更新就没成功,即结果不为预想的 300 class

脏读:事务 T1 更新了一行数据,尚未提交所作的修改,T2 读取更新后的数据,T1 回滚,T2 读取的数据无效,这种数据称为脏读数据。 date

不可重复读:事务 T1 读取一行数据,T2 修改了 T1 刚刚读取的记录,T1 再次查询, 发现与第一次读取的记录不相同,称为不可重复读。

幻读:事务 T1 读取一条带 WHERE 条件的语句,返回结果集,T2 插入一条新纪录, 刚好也是 T1 WHERE 条件,T1 再次查询,结果集中又看到 T2 的记录,新纪录就叫 作幻读。

 

事务的开启自动开启于 DML insert delete update

事务的结束

1) 成功

2) 失败 rollback ,手动回滚  

非法退出 意外的断电l

rollback 只能对未提交的数据撤销,已经 Commit 的数据是没法撤销的,由于 commit 以后已经持久化到数据库中。

 

 

添加数据 能够手写也能够从别的表中获取的);àinsert into 表名 values(和表结构顺序和个数和类型一致的数据 insert into 表名(指定列名) values(和指定的列个数、顺序、类型一致的列数据)

 

update 表名 set 字段=[,....] where 过滤行记录;

 

delete [from] 表名 where 过滤行记录

 

转自尚学堂学员的Java面试准备笔记--陆同窗,上海尚学堂Java培训24期学员,已经入职上海企业,月薪11K起步。

相关文章
相关标签/搜索