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