1. 程式人生 > >mysql中的tinyint自動補0

mysql中的tinyint自動補0

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) 極大整數值