事務是指做爲單個邏輯工做單元執行的一組相關操做。這些操做要求所有完成 或者所有不完成。使用事務是爲了保證數據的安全有效。面試
事務有一下四個特色:(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起步。