smallint 是一種精確的數值數據類型,其精度在算術運算后不變,采用2個字節編碼
有符號的 smallint 值的范圍是 -2^15-------2^15 -1,即 -32768 ----32767
無符號的 smallint 值的范圍是 0-------2^16 -1,即 0----65535,
int 數據類型存儲為 4字節整數,取值范圍 -2^31---2^31,所以在考慮最大數據范圍的前提下,優先考慮使用smallint類型。
在int 數據類型支持范圍的數字常量仍被解釋為numeric ,這些數字的小數位數為0,其精度為足以保存所指定的值。
bigint 可以精確的表示從 -2^63------2^63-1 之間的整數,數據類型存儲為8字節存儲空間,當bigint值在int數據類型支持的范圍內時, sql server 才將
bigint 隱式轉換成int, 如果bigint 表達式包含了一個在int 數據類型支持范圍之外的值,就會在運行時出現轉換錯誤。
在數據類型優先表中,bigint 數據類型位於int之上, smallint之下
tinyint 如果字段設置為unsigned, 只能存儲從0 到255之間的整數,不能用來存儲負數
如果字段沒有設置為unsigned, 將會存儲 -128 到127之間的數
tinyint 存儲采用1個字節
通常, 為了節省空間,應該盡可能的使用最小的整型數據,這些整型類型看起來差別不大,但是在比較大的表中,字節數的增長是很快的。
另一方面,一旦你已經創建了一個字段,要修改它是很困難的。因此,為安全起見,你應該預測一下,一個字段所需要存儲的數值最大有可能是多大,然后選擇適當的數據類型。