MySQL支持多种数据类型,主要有数值类型、日期类型、日期/时间类型和字符串类型。
数值数据类型:包括整数类型TINYINT, SMALLINT, MEDIUMINT ,INT, BIGINT,浮点小数数据类型FLOAT和DOUBLE,定点小数类型DECIMAL。
日期/时间类型:包括YEAR,TIME,DATE,DATETIM和TIMESRAMP。
字符串类型:包括CAHR,VARCHAR,BINARY,VARBINARY,BLOB,TEXT,ENUM和SET等。
日期时间类型:
枚举和set
如何选择数据类型:
为了优化存储,提高数据库性能,要使用最精确的类型,就是该类型使用的存储最少。
整数和浮点数:
若使用整数,则MEDIUMINT UNSIGNED是最好的理性,若存储小数,则使用FLOAT类型。
浮点数和定点数:
浮点数FLOAT,DOUBLE相对于定点数DECIMAL的优势:在长度一定,浮点数能表示更大的数据范围,DECIMAL以字符串存储,如果进行比较数值,最好使用DECIMAL类型。
日期和时间类型:
存储范围较大的日期最好使用DATETIME。需要插入记录同时插入当前时间时,使用TIMESTAMP,TIMESTAMP在空间上比DATETIME更有效。
CHAR和VARCHAR:
存储不大,在速度上有要求时,用CHAR类型。繁殖使用VARCHAR类型。
对于MyISAM存储引擎:使用笃定长度代替可变长度的数据列,使数据检索更快,用空间换时间。
对于InnoDB存储引擎:VARCHAR比较好,其节省空间。
ENUM和SET:
EUMN只能取单值,需要从多个值中选取一个时,使用ENUM。
SET可取多值,需要取多个值的时候,适合用SET类型。
BLOB和TEXT
BLOB只要存储图片,音频信息等。
TEXT只能存储文本文件。