数值型
整型:Tinyint
1个字节8个位bit 存贮范围 0---2^8- (0--255)
0000 0000 =0
1111 1111 =2^8-1=255
计算机为了表示一个数是负数,会把最高位的(左侧)的0/1,当符合看
如为0是正数,如是1,则是负数
0 0000000 0 1111111 –>0->127
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