這兩天周末,各種事情都來,一個玩得很好的學長回來了。然後我的一個室友過生請吃飯,我們都是自主燒烤,所以周末就顯得有點忙。最重要的是,我感冒發燒了,吃啥都沒胃口。 複習的有點怠慢。 先複習一下代碼,看看憑記憶記住的 事務(transaction)的概念是對資料庫執行的一個操作單位。事務4大屬性:1 原 ...
這兩天周末,各種事情都來,一個玩得很好的學長回來了。然後我的一個室友過生請吃飯,我們都是自主燒烤,所以周末就顯得有點忙。最重要的是,我感冒發燒了,吃啥都沒胃口。
複習的有點怠慢。
先複習一下代碼,看看憑記憶記住的
select * from List where NickName is null; select * from List where NickName is not null; select * from List where Age in (34,13); select * from List where Age>10 and Age<34; select * from List where Age between 20 and 40; select Age , COUNT(*) from List group by Age; --分組 顯示年齡 --聚合函數 max min avg sum 不能出現在where當中 必須使用Having select Age , COUNT(*) from List group by Age Having COUNT(*)>1; -- Having是對分組後丶信息經行過濾 能用的列和select的列是一樣的 5數據分組 select top 3 * from List order by Age DESC; select top 3 ID from List order by Age DESC; select top 3 * from List where ID not in (select top 3 ID from List order by Age DESC) order by Age; select Age,ID,Name from List with(nolock); --with(nolock)其目的就是查詢是不鎖定表, --從而達到提高查詢速度的目的。 --1:數據量特別大的表,犧牲數據安全性來提升性能是可以考慮的; --2:允許出現臟讀現象的業務邏輯,反之一些數據完整性要求比較嚴格的場景就不合適了,像金融方面等。 --3:數據不經常修改的表,這樣會省於鎖定表的時間來大大加快查詢速度。 --4、當使用NoLock時,它允許閱讀那些已經修改但是還沒有交易完成的數據。 --因此如果有需要考慮transaction事務數據的實時完整性時,使用WITH (NOLOCK)就要好好考慮一下。 select Age,ID,Name,ROW_NUMBER() over(order by Age DESC)as 欄位編號 from List with(nolock);
事務(transaction)的概念是對資料庫執行的一個操作單位。事務4大屬性:
1 原子性(Atomicity):事務是一個完整的操作。
2 一致性(Consistency):當事務完成時,數據必須處於一致狀態。
3 隔離性(Isolation):對數據進行修改的所有併發事務是彼此隔離的。
4 持久性(Durability):事務完成後,它對於系統的影響是永久性的。
它包含了3個基本操作命令:(1):Commit 提交 (2):Rollback (3)SavePoint
只是瞭解了Commit命令,所以就單說一下對它的認識。COMMIT命令用於把事務所做的修改保存到資料庫,它把上一個COMMIT或ROLLBACK命令之後的全部事務都保存到資料庫。用commit 這個命令,可以很好的預防 您有時辛辛苦苦對數據進行的操作,最後卻未寫入SQL後臺,這樣工作效率就降低了。在SqlServer中需要使用這種格式
begin transaction; insert into emp(empno,ename) values(2,'dan'); commit transaction;
Rollback是針對事務的,你如果沒有在執行語句之前開啟事務,那麼無法rollback;
1 --開啟事務 2 begin tran 3 --執行操作 4 update Accounts_UsersExp set TelPhone=123456 where userid=14 5 --執行錯誤事務回滾 6 rollback 7 --如果正確進行事務提交 8 commit
一套帶走的。