這兩天週末,各類事情都來,一個玩得很好的學長回來了。而後個人一個室友過生請吃飯,咱們都是自主燒烤,因此週末就顯得有點忙。最重要的是,我感冒發燒了,吃啥都沒胃口。數據庫
複習的有點怠慢。安全
先複習一下代碼,看看憑記憶記住的併發
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:數據不常常修改的表,這樣會省於鎖定表的時間來大大加快查詢速度。 --四、當使用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中須要使用這種格式spa
begin transaction; insert into emp(empno,ename) values(2,'dan'); commit transaction;
Rollback是針對事務的,你若是沒有在執行語句以前開啓事務,那麼沒法rollback;code
1 --開啓事務 2 begin tran 3 --執行操做 4 update Accounts_UsersExp set TelPhone=123456 where userid=14 5 --執行錯誤事務回滾 6 rollback 7 --若是正確進行事務提交 8 commit
一套帶走的。blog