MS SQL 常用資料型態一覽表

bit位元為電腦存儲資料的最小單位,

8 bits = 1 byte(位元組),

一個英文字需要1byte的儲存空間,而中文則需2bytes。

1bytes(位元組) = 8bit(位元)

整數
 資料型別 說明
 INT 長度為 4 個 bytes;介於 -2,147,483,648 與 2,147,483,647 間的整數
 SMALLINT 長度為 2 個 bytes;介於 -32,768 與 32,767 間的整數
 TINYINT 長度為 1 個 bytes;介於 0 與 255 間的整數
 BIGINT 長度為 8 個 bytes;介於 -2^63 與 2^63-1 間的整數
 BIT 只佔用一個位元,且不允許存放 NULL 值

 

精確位數
 資料型別 說明
 DECIMAL[(p[,s])] 使用 2 到 17 個 bytes 來儲存資料,可儲存的值介於 -1038-1 與 1038-1 之間;p 用來定義小數點兩邊可以被儲存的位數總數目,而 s 代表小數點右邊的有效位數(s < p);p的預設值為 18 而 s 的預設值為0
 NUMERIC[(p[,s])] 與 DECIMAL[(p[,s])] 同
近似浮點數值
 資料型別 說明
 FLOAT[(n)] n 是儲存 float 數字的小數位數,介於 1 與 53 間;若 n 介於 1 與 24 間,儲存大小為 4 個 bytes,有效位數為 7 位數;若 n 介於 25 與 53 間,儲存大小為 8 個 bytes,有效位數為 15 位數
 REAL 長度為 4 個 bytes;介於 -3.4E-38 與 3.4E+38 間的浮點數;與 FLOAT(24) 相同

 

日期時間
 資料型別 說明
 DATETIME 長度為 8 個 bytes;介於 1/1/1753 與 12/31/9999 間的日期時間
 SMALLDATETIME 長度為 4 個 bytes;介於 1/1/1900 與 6/6/2079間的日期時間
字串
 資料型別 說明
 CHAR[(n)] 固定長度為 n 的字元型態,n 必須介於 1 與 8000 之間
 VARCHAR[(n)] 與 CHAR 相同,只是若輸入的資料小於 n,資料庫不會自動補空格,因此為變動長度之字串
 TEXT 用來儲存大量的(可高達兩億個位元組)字元資料,儲存空間以 8k 為單位動態增加

CHAR 與 VARCHAR比較.

char: 0 ~ 255

varchar: 0 ~ 65535

儲存方式 與 佔用容量

 

CHAR(5)

 

內容 vs 實際儲存

'ex'    'ex   ' 5 bytes # 會多存三個空白

'expe'  'expe ' 5 bytes

'exper' 'exper' 5 bytes

'expert' 'exper' 5 bytes

 

 

VARCHAR(5)

 

內容 vs 實際儲存

'ex'    'ex' 3 bytes # 多 1 bytes是存長度

'expe'  'expe' 5 bytes

'exper' 'exper' 6 bytes

'expert' 'exper' 6 bytes # 多 1 bytes不是存 t, 而是存長度

註: VARCHAR 超過 255 的話, 會多 2 bytes.

 

 

Yiru@Studio - 關於我 - 意如