T SQL基礎和規範的小知識點

2021-10-23 16:36:37 字數 975 閱讀 1683

1. char和varchar,以及nchar和nvarchar的區別

1. char和nchar是定長;varchar和nvarchar是變長

2. char和varchar是非unicode資料;nchar和nvarchar是unicode資料

3. char , varchar最多儲存8000個英文,4000個漢字;nchar , nvarchar可以儲存4000個字元,無論英文還是漢字

(所以nchar和nvarchar更適用於儲存多種語言)

2. case表示式

1. case表示式是標量表示式,返回乙個符合條件的值,它不是語句!

2. 其中when子句可以使用標量或返回標量的表示式,也可以使用邏輯表示式

3. 資料庫髒讀

乙個事務a正在讀取訪問資料並修改它,但修改沒有提交,這時另乙個事務b也訪問這個資料,然後使用了這個資料,由於這個資料是還未提交的資料,所以b讀到的就是髒資料。

意思就是更新到一半的資料,或者a在更新時遇到問題,事務回滾了

那麼解決這個問題就是要鎖定資料庫,但是呢,又有了另乙個規範?nolock

4. with(nolock)

在查詢語句後加上with(nolock)來提高查詢的速度,但是nolock執行的時候又不發出共享鎖,意思就是允許髒讀了?

所以到底應該怎樣選擇可能還是要看場景吧,但是我覺得大表的話,還是提高效能更重要,hhhh

5. 資料庫表歸檔

對資料定期的匯出和刪除:

建立乙個新錶,表結構與原表類似

建儲存過程,分批將規定時間段的資料歸檔到新錶中,然後刪除原表中已經歸檔的舊資料

還可以建立事件定期執行儲存過程

總結:

在編寫sql時不僅功能要實現,還要考慮嚴謹,效能是很重要的

T SQL中的知識點

全域性變數 資料型別轉化 分支結構 迴圈語句 批處理指令 go declare 變數名 資料型別 declare name varcher 8 declare seat int賦值的語法如下 set 變數名 值 類似update 寫法和其他賦值語句一樣,將等號後的東西賦值給等號前的變數。或 sele...

前端小知識點 class命名規範

一 命名規則說明 1 所有的命名最好都小寫 2 屬性的值一定要用雙引號 括起來,且一定要有值如class divcss5 id divcss5 3 每個標籤都要有開始和結束,且要有正確的層次,排版有規律工整 4 空元素要有結束的tag或於開始的tag後加上 5 表現與結構完全分離,中不涉及任何的表現...

java 基礎複習 小知識點

2014年6月 11日 星期三 byte s 4 s s 4 編譯失敗 原因 它進行兩步操作,先運算後賦值,s 會被提公升為 int型別,運算的結果還是 int型別無法賦值給 short型別 s 4 編譯成功 原因 它進行一次賦值操作,在給s 賦值自動完成了強轉操作。2 異或 兩邊相同為 false...