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 到 127 | 0 到 255 |
| SMALLINT(n) | -32768 到 32767 | 0 到 65535 |
| MEDIUMINT(n) | -8388608 到 8388607 | 0 到 16777215 |
| INT(n) | -2147483648 到 2147483647 | 0 到 4294967295 |
| BIGINT(n) | -9223372036854775808 到 9223372036854775807 | 0 到 18446744073709551615 |
| FLOAT | 单精度浮点数,小数点可浮动。 | |
| DOUBLE(m, d) | 双精度浮点数,小数点可浮动。 | |
| DECIMAL(m, d) | 定点数类型,以字符串形式存储,允许固定小数点。 |
默认情况下,整数类型允许负数和正数的范围,如上表所示。你可以使用 UNSIGNED 关键字,仅允许从 0 开始的正数。
日期/时间类型
| 类型 | 格式 |
|---|---|
| DATE | YYYY-MM-DD |
| DATETIME | YYYY-MM-DD HH:MM:SS |
| TIMESTAMP | YYYY-MM-DD HH:MM:SS |
| TIME | HH:MM:SS |
| YEAR | YYYY |
日期/时间字段只接受有效的日期或时间。
总结
理解 MySQL 数据类型对于数据库设计和管理至关重要;通过仔细选择合适的数据类型——文本、数字或日期/时间——开发人员可以确保数据库在存储和性能方面得到优化。文本类型提供从固定长度到可变长度的多种选项,以满足存储文本数据的不同需求。数字类型提供对数值范围的精确控制,并可选择无符号类型仅允许正数。日期/时间类型对于准确记录时间数据至关重要。总体而言,MySQL 中这些数据类型的有效使用可以显著提升数据库的功能性和效率,是开发人员和数据库管理员必备的重要技能。