1、Mysql字段类型主要分为四大类:
A、数字类型
B、字符串类型
C、时间类型
D、空间数据类型
2、由于类型比较多,我们接下来就主要讲解一些比较常用的字段类型:
A、数字类型:
整型
Int:4字节,最大空间长度为11,范围(-2147483648~2147483647)
Tinyint:1字节,最大长度为255,范围(-128~127)
Smallint:2字节,最大长度为255,范围(-32768~32767)
浮点型
Float:4字节,单精度浮点型
Decimal:2字节,是存储为字符串的浮点数
值得注意的是:整型字段实际上设置长度并不能影响他们的存储数据长度。
既你设置了Int(1) 也一样可以存储数据为 100超越个位的数
B、字符串类型:
Char:必须设置长度,最大255个字符
Varchar:必须设置长度,最大65535个字符
Text:长度必须为空,最大65535个字符
MEDIUMTEXT:长度必须为空,最大2的24次方-1个字符
值得注意的是:字符串类型的长度所指的并不是字节,而是字符,既不管汉字英文还是数字,
都各占一个字符,而存储的空间,则是依据对应的字符的编码集来计算字节数。
并且当长度大约255字符时,每个字符的存储空间将增加2个字节数。
3、简单的说下个个字段的应用场景:
int,可用于存储时间戳与自增ID主键
Tinyint,一般只用于状态字段,比如订单状态识别,账号安全级别等
Decimal:常用于返点率,订单金额存储
Char:常用于主键不自增ID,还有订单编号存储,简单的msg记录等
Varchar:不建议超过1024长度,否则使用Text字段代替,常用于内容描述或摘要存储,中长度msg存储,中长度json数据存储。
Text:超长度json数据存储,中长度文本内容存储
MEDIUMTEXT:超长度log、json,文本内容存储
4、值得注意的是:
本文并没有介绍时间类型为常用的字段类型,因为MySql中Time类型是有许多暗藏的缺陷,所以并不推荐大家使用,
在时间开发中要是用到时间存储的话,推荐使用Int(10)存储相应的时间戳,
而真要能用到时间类型的场景只有以下一个:
就是你存储log日志,并无其他表相关链接的情况下,可以使用Timestamp类型。