也許你平時不在意,在設計數據庫的時候,數字就設成int(10) 字符串就設成varchar(20)或者text
普通情況下是沒有問題的,但是若不理解字段類型和長度的含義,總有一天你會在這裏栽跟頭,
這篇文章,我將主要就int(以及int的擴展類型,如bigint等),varchar,text三種字段類型,一一詳解
首先來算筆賬
1字節(Byte)=8比特(bit),
就是說1字節能存儲的數據量是2^8即2進制位爲8位
如果是整形不包括負數那麼範圍應該是
00000000~11111111(2進制數)
換成10進制數就應該是0~255,如果有負數的話就是-128~127
FLOAT [(M, D)]
說明:小浮點數;單精度(精度小於D O U B L E) 允許的屬性:Z E R O F I L L
取值範圍:最小非零值爲±1.75494351E -38; 最大非零值爲±3 . 4 0 2 8 2 3 4 6 6 E + 3 8
缺省值:如果列可爲NULL,則爲NULL;如果列爲NOT NULL,則爲0 存儲需求:4 字節
DOUBLE[(M, D)]
說明:大浮點數;雙精度(比FLOAT更精確) 允許的屬性:Z E R O F I L L
取值範圍:最小非零值爲±2 . 2 2 5 07 3 8 5 8 5 07 2 0 14 E -308; 最大非零值爲±1。7 9 7 6 9 3 13 -4 8 6 2 3 15 7 E + 3 0 8
缺省值:如果列可爲NULL,則爲NULL;如果列爲NOT NULL,則爲0 存儲需求:8 字
字符串類型
一個字符所需的存儲空間是1bit
VARCHAR(M)
說明:0 到M 字節長的可變長字符串。M 應該爲1到255 之間的一個整數,或者自MySQL3.23 後爲0 到255 之間的一個整數。存儲時後跟的空格被去掉。存儲時,大於M 個字符的串剪斷爲M 個字符。 允許的屬性:B I N A RY 允許的長度:0 到M 字節
缺省值:如果列可爲NULL,則爲NULL;如果列爲NOT NULL,則爲“” 存儲需求:值的長度,加上1字節用來記錄長度
比較:不區分大小寫(如果具有B I N A RY 屬性,則區分大小寫)
TEXT
說明:常規大小的TEXT 值
允許的屬性:除通用屬性外無其他屬性
允許的長度:0 到6 5 5 3 5(0 到216-1)字節
缺省值:如果列可爲NULL,則爲NULL;如果列爲NOT NULL,則爲“” 存儲需求:值的長度加上用於記錄長度的2 個字節 比較:不區分大小寫