事务是指做为单个逻辑工做单元执行的一组相关操做。这些操做要求所有完成 或者所有不完成。使用事务是为了保证数据的安全有效。面试
事务有一下四个特色:(ACID) 数据库
1、原子性(Atomic):事务中全部数据的修改,要么所有执行,要么所有不执行。 安全
2、一致性(Consistence):事务完成时,要使全部全部的数据都保持一致的状态, 换言之:经过事务进行的全部数据修改,必须在全部相关的表中获得反映。 并发
3、隔离性(Isolation):事务应该在另外一个事务对数据的修改前或者修改后进行访问。 spa
4、持久性(Durability):保证事务对数据库的修改是持久有效的,即便发生系统故障, 也不该该丢失。事务
当事务之间发生并发时有几个隔离级别。it
Oracle 默认的隔离级别是 read committed。io
丢失更新:两个事务同时存储, 一个存储 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起步。