MySQL 支持多种数据类型,这些数据类型用于定义表中的列(字段)可以存储的数据的种类和格式。以下是 MySQL 中常见的数据类型及其详细说明:
数值类型
- 整数类型
- TINYINT: 非常小的整数,有符号范围为 -128 到 127,无符号范围为 0 到 255。
- SMALLINT: 小的整数,有符号范围为 -32,768 到 32,767,无符号范围为 0 到 65,535。
- MEDIUMINT: 中等大小的整数,有符号范围为 -8,388,608 到 8,388,607,无符号范围为 0 到 16,777,215。
- INT 或 INTEGER: 标准的整数,有符号范围为 -2,147,483,648 到 2,147,483,647,无符号范围为 0 到 4,294,967,295。
- BIGINT: 大整数,有符号范围为 -9,223,372,036,854,775,808 到 9,223,372,036,854,775,807,无符号范围为 0 到 18,446,744,073,709,551,615。
- 浮点数和定点数类型
- FLOAT: 单精度浮点数。
- DOUBLE 或 DOUBLE PRECISION: 双精度浮点数。
- DECIMAL 或 NUMERIC: 定点数,可以存储精确的小数。
日期和时间类型
- 日期类型
- DATE: 日期,格式为 'YYYY-MM-DD'。
- DATETIME: 日期和时间,格式为 'YYYY-MM-DD HH:MM:SS'。
- TIMESTAMP: 时间戳,格式为 'YYYY-MM-DD HH:MM:SS'。它与 UNIX 时间戳相似,并且与时区相关。
- YEAR: 年份,可以是 2 位或 4 位。
- 时间类型
- TIME: 时间,格式为 'HH:MM:SS'。
- 间隔类型
- INTERVAL: 用于表示时间间隔。
字符串类型
- 字符类型
- CHAR: 定长字符串,长度范围从 0 到 255。
- VARCHAR: 变长字符串,长度范围从 0 到 65,535(实际最大长度取决于最大行大小和使用的字符集)。
- 二进制字符串类型
- BINARY: 定长二进制字符串。
- VARBINARY: 变长二进制字符串。
- 文本类型
- TINYTEXT: 非常小的文本字符串。
- TEXT: 文本字符串。
- MEDIUMTEXT: 中等大小的文本字符串。
- LONGTEXT: 长文本字符串。
- 枚举和集合类型
- ENUM: 枚举类型,允许的值在列定义中给出。
- SET: 集合类型,允许的值在列定义中给出,但可以选择多个值。
空间数据类型(用于地理空间数据)
- 几何类型
- GEOMETRY: 几何类型的基类。
- POINT: 点。
- LINESTRING: 线段。
- POLYGON: 多边形。
- ...以及其他更复杂的几何类型。
- 地理类型
- GEOMETRYCOLLECTION: 地理类型的基类。
- POINT: 地理点。
- LINESTRING: 地理线段。
- POLYGON: 地理多边形。
- MULTIPOINT: 多点集合。
- MULTILINESTRING: 多线段集合。
- MULTIPOLYGON: 多多边形集合。
- ...以及其他更复杂的地理类型。
每种数据类型都有其特定的用途和限制,因此在设计数据库和表结构时,选择正确的数据类型非常重要。这有助于确保数据的完整性、准确性和性能。