SQL基礎語法 事務

2021-09-23 06:04:30 字數 1077 閱讀 6085

事務的四大特性有:

原子性(atomicity):乙個事務的操作要麼全部成功要麼全部失敗

一致性(consistency):保持資料的邏輯一致,符合原子性不一定符合一致性,如轉賬增加的錢與減少的錢不一致

隔離性(isolation):多個使用者併發操作同一資料時,資料庫為每乙個使用者開的事務上鎖,達到隔離的目的,即各事務間操作互不干擾

永續性(durability):事務一旦被提交,資料操作成功對資料庫的修改是永久性的,即便資料庫遇到故障也不會丟失。該事務提交的操作。

沒有隔離性會遇到的幾種問題

不可重複讀和幻讀的區別:

不可重複讀描述的是同一事務兩次讀取同一條資料得到不同的結果

幻讀描述的是乙個事務兩次統計某張資料表,所得的結果不同

四種隔離級別:

讀未提交 read uncommitted

通過排他寫鎖實現,正在進行的寫操作排斥另乙個寫操作

解決了更新丟失的問題,因為不排斥讀操作,會出現髒讀

讀提交 read committed

如果當前是寫操作,會排斥其他事務操作;如果當前是讀操作,則不會排斥其他事務操作

解決了更新丟失和髒讀,但是因為讀操作時不會排斥其他事務操作,所以會出現不可重複讀和幻讀

可重複讀取 repeatable read

讀資料會禁止寫操作但不會禁止讀操作,寫操作會禁止其他任何操作

解決了更新丟失、髒讀、不可重複讀的問題,因為此時只是對訪問的資料上鎖,其他使用者可以在表中增加或刪除資料,因此會出現幻讀

可序列化 serializable

對整個資料表上鎖

隔離級別

更新丟失

髒讀不可重複讀

虛讀(幻讀)

讀未提交

解決未解決

未解決未解決

讀已提交

解決解決

未解決未解決

可重複讀

解決解決

解決未解決

序列化解決

解決解決

解決

SET XACT ABORT用法(事務)

set xact abort 指定當transact sql 陳述式發生執行時期錯誤時 microsoft sql server 是否會自動復原目前的交易。語法set xact abort 備註 當setxact abort 設定為on 時,如果 transact sql 陳述式發生執行期錯誤 整個...

SQL基礎語法

select 語句用於從表中選取資料。結果被儲存在乙個結果表中 稱為結果集 select 列名稱 from 表名稱select from 表名稱如需獲取名為 lastname 和 firstname 的列的內容 從名為 persons 的資料庫表 請使用類似這樣的 select 語句 select ...

SQl基礎語法

1 ddl data define language 01.用來建立和刪除儲存資料的資料庫以及表等物件。create 建立資料庫或者表 create table a create database a drop 用來刪除表或者資料庫,刪除後無法恢復。drop table a drop databas...