MySQL三大列类型

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位,由于M5位,所以Mzerofill配合使用才有意思。

 

小数(浮点型/定点型)

 

浮点数在计算机里表示是比较复杂

FloatM,DdecimalM,D

M叫精度----à表明小数的总位数,而D是标度,表明小数位(小数点右边的位数)

 

 Float6,2)范围-9999.99-------+9999.99