劍來的第五章事務與游標課程總結

2021-08-27 21:15:16 字數 1612 閱讀 9047

在資料庫的實際運用中,有時候需要把包含有多個步驟的指令當作乙個整體來執行,這個整體要麼全部執行成功

要麼全部執行失敗,這就需要考慮事務

事務是乙個不可分割的工作邏輯單元,在關聯式資料庫中,乙個事務可以是一條sql語句,一組sql語句或整個程式。

事務是恢復和併發控制的基本單位。事務應該具有4個屬性:原子性、一致性、隔離性、持續性。這四個屬性通常稱為acid特性。

原子性(atomicity)。乙個事務是乙個不可分割的工作單位,事務中包括的操作要麼都做,要麼都不做。

一致性(consistency)。事務必須是使資料庫從乙個一致性狀態變到另乙個一致性狀態。一致性與原子性是密切相關的。

隔離性(isolation)。乙個事務的執行不能被其他事務干擾。即乙個事務內部的操作及使用的資料對併發的其他事務是隔離的,併發執行的各個事務之間不能互相干擾。

永續性(durability)。持續性也稱永久性(permanence),指乙個事務一旦提交,它對資料庫中資料的改變就應該是永久性的。接下來的其他操作或故障不應該對其有任何影響。

顯式事務:t-sql標明,由begin transaction開啟事務開始,由commit transaction 提交事務、rollback transaction 回滾事務結束。

隱式事務:使用set implicit_transactions on 將將隱式事務模式開啟,不用begin transaction開啟事務,當乙個事務結束,這個模式會自動啟用下乙個事務,只用commit transaction 提交事務、rollback transaction 回滾事務即可。

1.自動提交事務:每執行一條sql語句,就同步到資料庫中。

2.手動提交事務:執行一系列的sql語句後一起同步到資料庫中。

我們知道,關聯式資料庫所有的關係運算其實是集合與集合的運算,它的輸入是集合輸出同樣是集合,有時需要對結果集逐行進行處理,這時就需要用到游標。我們對游標的使用一本遵循「五步法」:宣告游標—>開啟游標—>讀取資料—>關閉游標—>刪除游標。以下就從這五步對游標的使用進行說明,並給出具體例項。

--1.宣告游標

declare cur

cursor scroll

for select customername,currentmoney from bank

--2.開啟該游標

open cur

--3.讀取游標

--先定義變數,用於存放游標中讀取出來的值

declare @name varchar(10),

@money money

--讀取游標的第一條記錄行,並存放在變數中

fetch first from cur into @name,@money

--迴圈讀取游標中的記錄

while @@fetch_status=0

begin

--用print輸出讀取的資料

print @name+'的餘額為'+convert(varchar(10),@money)

--讀取下一條記錄行

fetch next from cur into @name,@money

end--讀取完成後關閉游標

close cur

--釋放游標

deallocate cur

第五章 事務和游標 總結

事務是由若干條t sql指令組成的作為單個邏輯工作單元執行的一系列操作,這些操作作為乙個整體一起向系統提交,要麼全部執行完成,要麼全部撤銷 事務分為顯式事務,自動提交事務和隱式事務三種,重點為顯式事務 顯式事務和另外兩個事務不同的是顯式事務需要明確定義開始 begin transaction 和結束...

第五章 Spring的事務管理

5.2宣告式事務管 spring的事務管理可以通過兩種方式來實現,一種是基於xml的方式,另一種是基於annotation的方式。5.2.1基於xml方式的宣告式事務 在eclipse中,建立乙個名為test1008的web專案,在專案的lib目錄下匯入chapter04專案中的所有jar包,並將a...

第五章 簡單的資料查詢 總結

資料庫的查詢操作基本分為三類 投影操作,選擇操作,排序操作 查詢的基本結構 select from 表名 where 過濾條件 投影操作 select 列名列表 from 表名 列名列表幾種書寫方式 如果選擇某個表中的多個列,那麼列名之間用逗號隔開 如果是單個列,只需要該列的列名即可 如果選擇所有的...