mysql 數據庫中要加入字段,並設置默認值為零,數據庫設計原則所占的儲存空間越少越好,夠用就行,基於節省存儲空間的考慮所以用了tinyint類型,
int類型占4個字節,tinyint占1個字節,於是設計了tinyint的字段類型,在長度的填寫上寫了2,然后設置了填充零的勾選,
於是在dll里面channel` tinyint(2) unsigned zerofill DEFAULT '00'
問題來了,2指的是存儲寬度,不表示存儲長度。如果列制定了zerofill 就會用0填充顯示,例如tinyint(2)指定后2就會顯示為02,自動左邊補零。
tinyint有固定范圍值,帶符號的范圍是-128到127。無符號的范圍是0到255。
琢磨好上面兩句話,發現設置tinyint(2)對我來說是畫蛇添足了,tinyint已經滿足我的使用。剛開始設置的時候把存儲寬度和存儲長度概念給弄混淆了。
而且在tinyint的使用中,MYSQL中沒有布爾類型,但是如果你定義了布爾類型,它會自動給你轉換成Tinyint。
保存BOOLEAN值時用1代表TRUE,0代表FALSE,boolean在MySQL里的類型為tinyint(1),
MySQL里有四個常量:true,false,TRUE,FALSE,它們分別代表1,0,1,0。
也就是說如果需要建立一張大量存儲0和1的字段的表,可以充分考慮tinyint了。
科普記錄一下:
類型 大小 范圍(有符號) 范圍(無符號) 用途
TINYINT 1字節 (-128,127) (0,255) 小整數值
SMALLINT 2 字節 (-32 768,32 767) (0,65 535) 大整數值
MEDIUMINT 3 字節 (-8 388 608,8 388 607) (0,16 777 215) 大整數值
INT或INTEGER 4 字節 (-2 147 483 648,2 147 483 647) (0,4 294 967 295) 大整數值
BIGINT 8 字節 (-9 233 372 036 854 775 808,9 223 372 036 854 775 807) (0,18 446 744 073 709 551 615) 極大整數值
