我在刚开始学习MySQL时,对于数据类型有很多困惑,遇到各种奇怪的问题。后来下定决心要总结下常用的数据类型,以下为我对MySQL常用数据类型的总结,希望对在这方面有困惑的小伙伴们有帮助哦~
字符型
CHAR是定长字符型
VARCHAR是变长字符型
整型
zerofill
在数值类型后加zerofill,当位数不够时,在其前补充0。如果一个列指定为zerofill,则MySQL自动为该列添加UNSIGNED属性。
BIT型
BIT(M)可以用来存放多位二进制数,M范围从1~64,默认为1。对于位字段,直接使用SELECT命令将不会看到结果,可以用bin()(显示为二进制格式)或者hex()(显示为十六进制格式)函数进行读取。
数据插入bit类型字段时,首先转换为二进制,如果位数允许,将插入成功,如果比定义的长,将插入失败。
浮点型
定点数:decimal,MySQL内部以字符串形式存放,比浮点数更精确,适合用来表示货币等精度高的数据。decimal(M(精度),D(标度)),默认整数位(M)为10,小数位(D)为0。
日期时间类型
当表中有多个字段的类型是TIMESTAMP,只将第一个字段(最前面)的默认值设为CURRENT_TIMESTAMP,其他字段默认为0.MySQL规定TIMESTAMP类型字段只能有一列的默认值为CURRENT_TIMESTAMP(这个和PRIMARY KEY有点类似),如果强制修改,系统会报错。
ENUM型
ENUM类型忽略大小写,插入不在ENUM列表中的“数值”时,并没有返回警告,而是插入ENUM列表中第“数值”个值(列表中值的索引从1开始)。
SET型