数值

MySQL数值类型分为两类,整数和浮点数

整数

整体来说就是根据实际使用的时候尽量选内存占用最小的

  • tinyint:1字节,(-128,127)基本上用来表示状态的字段适合用这个类型
  • smallint:2字节,范围是(-32768,32767)
  • mediumint:3字节,(-8388608,8388607)
  • int、integer:4字节,(-2147483648,2147483647)
  • bigint:8字节,范围大到无法想象

对于上面的这些整数类型特性上基本一致只是能存储的值不同,最常见的问题是int(2)和int(3),这里的2和3只是一个宽度显示器,并不会影响到数值的存储;例如int(2)同样可以完整的存储100,只是只能展示两位

再说一下unsigned和zerofill两个关键字

  • unsigned:表示无符号,不表示负数,这样字段的内存中就能多出一位来存储数值,比如修饰tinyint的时候它的范围变成了0-255
  • zerofill:用0来真补输出的值,且当这个关键字修饰时也会自动出现unsigned关键字效果

浮点数

  • float:float(7,3)表示总长度不超过7,且小数点后带三位数字
  • double
  • decimal

浮点数用的很少,就不详细研究了,unsigned和zerofill两个关键字同样适用且效果和修饰整数的时候相同

字符串

  • char
  • varchar
  • tinyblob
  • tinytext
  • blob
  • text
  • mediumblob
  • mediumtext
  • longblob
  • longtext

时间类型

  • date
  • time
  • year
  • datetime
  • timestamp