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 - 關於我 - 意如