1. 程式人生 > >sql server資料庫中 smallint, int ,bigint ,tinyint的區別與長度 sql server資料庫中 smallint, int ,bigint ,tinyint的區別與長度

sql server資料庫中 smallint, int ,bigint ,tinyint的區別與長度 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個位元組  

通常, 為了節省空間,應該儘可能的使用最小的整型資料,這些整型型別看起來差別不大,但是在比較大的表中,位元組數的增長是很快的。

另一方面,一旦你已經建立了一個欄位,要修改它是很困難的。因此,為安全起見,你應該預測一下,一個欄位所需要儲存的數值最大有可能是多大,然後選擇適當的資料型別。