sql server資料庫中 smallint, int ,bigint ,tinyint的區別與長度 sql server資料庫中 smallint, int ,bigint ,tinyint的區別與長度
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個位元組
通常, 為了節省空間,應該儘可能的使用最小的整型資料,這些整型型別看起來差別不大,但是在比較大的表中,位元組數的增長是很快的。
另一方面,一旦你已經建立了一個欄位,要修改它是很困難的。因此,為安全起見,你應該預測一下,一個欄位所需要儲存的數值最大有可能是多大,然後選擇適當的資料型別。
本部落格是自己在學習和工作途中的積累與總結,僅供自己參考,也歡迎大家轉載,轉載時請註明出處。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個位元組
通常, 為了節省空間,應該儘可能的使用最小的整型資料,這些整型型別看起來差別不大,但是在比較大的表中,位元組數的增長是很快的。
另一方面,一旦你已經建立了一個欄位,要修改它是很困難的。因此,為安全起見,你應該預測一下,一個欄位所需要儲存的數值最大有可能是多大,然後選擇適當的資料型別。