MySQL三大列類型ide
數值型學習
整型:Tinyintui
1個字節8個位bit 存貯範圍 0---2^8- (0--255)spa
0000 0000 =0ci
1111 1111 =2^8-1=255it
計算機爲了表示一個數是負數,會把最高位的(左側)的0/1,當符合看class
如爲0是正數,如是1,則是負數二進制
0 0000000 0 1111111 –>0->127im
1 0000000 à -0 1 1111111 à -127 計算機
二進制補碼的問題
如上理解+0 和-0,則重複了,浪費一種存儲的可能性。
所以計算機種負數,不是照着「後面的絕對值直接乘以-1獲得的」
負數 = 絕對值-128
所以
1111 1111 ----.>-1
1000 0000 ---à-128
Smallint
Mediuint
Int
Bigint
分析:
2個字節,16位 0-----2^16-1=65535
-2^15--à+2^15-1, -32768---à32767
通常而言,設某類型N個字節
N字節,8N位。
0------à2^8n-1
-2^(8n-1)---à+2^(8N-1);
對於int型:佔得字節越多,存儲的範圍越大
Int系列的聲明時的參數:
(M) unsigned zerofil
學習tinyint的參數並驗證字節的與範圍的關係
Out of range 超出範圍
即int 不加特殊說明,默認有符合
#加unsigned表示無符號,能夠影響儲存的範圍
#加unsigned類型表示無符號
#分析M參數
#zerofill zero 是0 ;fill 填充,
#M必須和zerofill配合纔有意思,不夠位數,用0填充
爲何補充到5位,由於M爲5位,所以M與zerofill配合使用纔有意思。
小數(浮點型/定點型)
浮點數在計算機裏表示是比較複雜
Float(M,D)decimal(M,D)
M叫精度----à表明小數的總位數,而D是標度,表明小數位(小數點右邊的位數)
Float(6,2)範圍-9999.99-------+9999.99