跳到主要内容

MySQL 数据类型

MySQL 是一种流行的关系型数据库管理系统,使用多种数据类型来定义列可以存储的值的类型。理解 MySQL 数据类型对于有效的数据库设计和数据存储优化至关重要。
在 MySQL 数据库中,有三(3)种主要数据类型:文本、数字和日期/时间。在设计数据库时,必须选择合适的数据类型,因为这决定了该列可以存储的数据。使用最合适的数据类型还可以提升数据库的整体性能。

MySQL 数据类型

文本类型

类型说明
CHAR(n)固定长度,长度范围为 0 到 255 个字符。
VARCHAR(n)可变长度,最大长度取决于字符集和行格式,理论上最大可达 65535 字节(实际受限于行大小)。
TINYTEXT最大长度为 255 个字符的字符串。
TEXT最大长度为 65535 个字符的字符串。
BLOB最大长度为 65535 字节的二进制大对象,用于存储二进制格式的非文本信息。
MEDIUMTEXT最大长度为 16777215 个字符的字符串。
MEDIUMBLOB最大长度为 16777215 字节的二进制大对象。
LONGTEXT最大长度为 4294967295 个字符的字符串。
LONGBLOB最大长度为 4294967295 字节的二进制大对象。

括号中的数字(n)允许你指定该列可使用的最大字符数。
BLOB(Binary Large Object,二进制大对象)用于存储二进制格式的非文本信息。

数字类型

类型有符号范围无符号范围
TINYINT(n)-128 到 1270 到 255
SMALLINT(n)-32768 到 327670 到 65535
MEDIUMINT(n)-8388608 到 83886070 到 16777215
INT(n)-2147483648 到 21474836470 到 4294967295
BIGINT(n)-9223372036854775808 到 92233720368547758070 到 18446744073709551615
FLOAT单精度浮点数,小数点可浮动。
DOUBLE(m, d)双精度浮点数,小数点可浮动。
DECIMAL(m, d)定点数类型,以字符串形式存储,允许固定小数点。

默认情况下,整数类型允许负数和正数的范围,如上表所示。你可以使用 UNSIGNED 关键字,仅允许从 0 开始的正数。

日期/时间类型

类型格式
DATEYYYY-MM-DD
DATETIMEYYYY-MM-DD HH:MM:SS
TIMESTAMPYYYY-MM-DD HH:MM:SS
TIMEHH:MM:SS
YEARYYYY

日期/时间字段只接受有效的日期或时间。

总结

理解 MySQL 数据类型对于数据库设计和管理至关重要;通过仔细选择合适的数据类型——文本、数字或日期/时间——开发人员可以确保数据库在存储和性能方面得到优化。文本类型提供从固定长度到可变长度的多种选项,以满足存储文本数据的不同需求。数字类型提供对数值范围的精确控制,并可选择无符号类型仅允许正数。日期/时间类型对于准确记录时间数据至关重要。总体而言,MySQL 中这些数据类型的有效使用可以显著提升数据库的功能性和效率,是开发人员和数据库管理员必备的重要技能。