阅读量:0
MySQL数据库的列存表支持的数据类型包括:整数、浮点数、固定小数、字符串、日期和时间等。
MySQL数据库的表数据类型
整数型
类型 | 大小 | 范围(有符号) | 范围(无符号) | 用途 |
TINYINT | 1字节 | (-128, 127) | (0, 255) | 小整数值 |
SMALLINT | 2字节 | (-32768, 32767) | (0, 65535) | 大整数值 |
MEDIUMINT | 3字节 | (-8388608, 8388607) | (0, 16777215) | 大整数值 |
INT | 4字节 | (-2147483648, 2147483647) | (0, 4294967295) | 大整数值 |
BIGINT | 8字节 | (负的2的32次方减1,2的32次方减1) | (0, 2的64次方减1) | 极大整数值 |
浮点型
类型 | 大小 | 备注 |
FLOAT(m,d) | 4字节 | 单精度浮点型,m代表总个数,d代表小数位个数。 |
DOUBLE(m,d) | 8字节 | 双精度浮点型,m代表总个数,d代表小数位个数。 |
定点型
类型 | 大小 | 备注 |
DECIMAL(m,d) | 大小依赖于M和D的值 | m代表总个数,d代表小数位个数。 |
字符串类型
类型 | 大小 | 备注 |
CHAR | 0-255字节 | 定长字符串 |
VARCHAR | 0-65535字节 | 变长字符串,比char省空间但存取速度没有char快 |
TINYTEXT | 0-255字节 | 短文本字符串 |
TEXT | 0-65535字节 | 长文本数据 |
MEDIUMTEXT | 0-16777215字节 | 中等长度文本数据 |
LONGTEXT | 0-4294967295字节 | 极大文本数据 |
时间型
类型 | 大小 | 格式 | 备注 |
date | 3字节 | yyyy-MM-dd | 存储日期值 |
time | 3字节 | HH:mm:ss | 存储时分秒 |
year | 1字节 | yyyy | 存储年 |
datetime | 8字节 | yyyy-MM-dd hh:mm:ss | 存储日期+时间 |
timestamp | 4字节 | yyyy-MM-dd hh:mm:ss | 存储日期+时间,可作时间戳 |
相关问题与解答
问题一:MySQL中的FLOAT和DOUBLE有什么区别?
解答:
FLOAT和DOUBLE是MySQL中的两种浮点型数据类型,主要区别在于存储空间和精度不同,FLOAT占用4个字节,而DOUBLE占用8个字节,由于DOUBLE占用的存储空间更大,因此它可以提供更高的精度,在MySQL中,所有针对FLOAT和DOUBLE的计算都是以双精度进行的,这可能会带来一些意想不到的问题,例如精度损失。
问题二:为什么在需要精确计算时不推荐使用FLOAT或DOUBLE?
解答:
FLOAT和DOUBLE属于浮点型数据类型,它们并不是完全精确的数字表示方式,在计算机内部,浮点数是用科学记数法表示的,因此在进行某些计算时可能会出现精度误差,如果将FLOAT或DOUBLE列与具有小数的数字进行比较,不能直接使用等于(=)运算符,因为这可能会导致意外的结果,为了解决这一问题,可以使用DECIMAL类型来代替FLOAT或DOUBLE,因为DECIMAL提供了更精确的小数表示。
到此,以上就是小编对于“mysql数据库的表数据类型_列存表支持的数据类型”的问题就介绍到这了,希望介绍的几点解答对大家有用,有任何问题和不懂的,欢迎各位朋友在评论区讨论,给我留言。