基于MySQL8.0.39.0和Navicat16.1.5的MySQL数据类型,共有40种:
数值类型
整数
TINYINT | 存储小范围的整数,通常为 1 字节。范围从 -128 到 127(有符号)或 0 到 255(无符号)。 |
SMALLINT | 存储较小的整数,通常为 2 字节。范围从 -32,768 到 32,767(有符号)或 0 到 65,535(无符号)。 |
MEDIUMINT | 存储中等范围的整数,通常为 3 字节。范围从 -8,388,608 到 8,388,607(有符号)或 0 到 16,777,215(无符号)。 |
INT | 存储标准整数,通常为 4 字节。范围从 -2,147,483,648 到 2,147,483,647(有符号)或 0 到 4,294,967,295(无符号)。 |
INTEGER | 存储标准整数,通常为 4 字节。范围从 -2,147,483,648 到 2,147,483,647(有符号)或 0 到 4,294,967,295(无符号)。 |
BIGINT | 存储非常大的整数,通常为 8 字节。范围从 -9,223,372,036,854,775,808 到 9,223,372,036,854,775,807(有符号)或 0 到 18,446,744,073,709,551,615(无符号)。 |
浮点数
FLOAT | 存储单精度浮点数,通常为 4 字节,精度大约为 7 位十进制数字。 |
DOUBLE | 存储双精度浮点数,通常为 8 字节,精度大约为 15 位十进制数字。 |
REAL | 与 DOUBLE 等效,通常为 8 字节的双精度浮点数。 |
定点数
DECIMA(m,n) | 存储高精度的定点数,用户可以指定精度和小数位数,适合财务计算等需要精确计算的场景。 |
NUMERIC(m,n) | 存储高精度的定点数,用户可以指定精度和小数位数,适合财务计算等需要精确计算的场景。 |
字符串和文本
字符串
CHAR(n) | 存储固定长度的字符串,长度从 0 到 255 字节,短于指定长度的字符串会用空格填充。 |
VARCHAR | 存储可变长度的字符串,长度从 0 到 65,535 字节。 |
文本
TINYTEXT | 最多 255 字节的文本。 |
TEXT | 最多 65,535 字节的文本。 |
MEDIUMTEXT | 最多 16,777,215 字节的文本。 |
LONGTEXT | 最多 4,294,967,295 字节的文本。 |
二进制
BIT | 用于存储位字段(bit-field),可以存储最多64个二进制位。它的主要特点是存储效率高,可以用于表示布尔值(真/假)、开关状态等。 |
BINARY(n) | 存储固定长度的二进制数据,长度从 0 到 255 字节,短于指定长度的二进制数据会用 0 填充。 |
VARBINARY | 存储可变长度的二进制数据,长度从 0 到 65,535 字节。 |
TINYBLOB | 最多 255 字节的二进制数据。 |
BLOB | 最多 65,535 字节的二进制数据,约 64 KB。 |
MEDIUMBLOB | 最多 16,777,215 字节的二进制数据,约 16 MB。 |
LONGBLOB | 最多 4,294,967,295 字节的二进制数据,约 4 GB。 |
日期和时间
YEAR | 存储年份,格式为 ‘YYYY’。 |
DATE | 存储日期,格式为 ‘YYYY-MM-DD’。MM’。 |
DATETIME | 存储日期和时间,格式为 ‘YYYY-MM-DD HH:MM’。 |
TIME | 存储时间,格式为 ‘HH:MM’。 |
TIMESTAMP | 存储时间戳,格式为 ‘YYYY-MM-DD HH:MM’,表示自 1970-01-01 00:00:00 UTC 以来的秒数。会根据时区自动调整。 |
枚举和集合
ENUM | 枚举类型,从预定义的值列表中选择一个值,每个值都有一个索引。 |
SET | 集合类型,从预定义的值列表中选择零个或多个值,每个值都有一个索引。 |
空间数据
POINT | 存储一个点的坐标。 |
MULTIPOINT | 存储多个点的集合。 |
LINESTRING | 存储一条线段的多个点。 |
MULTILINESTRING | 存储多个线段的集合。 |
POLYGON | 存储一个多边形的多个点。 |
MULTIPOLYGON | 存储多个多边形的集合。 |
GEOMETRY | 存储几何数据的基类,适用于多种几何类型。 |
GEOMETRYCOLLECTION | 存储多个几何类型的集合。 |
JSON
JSON | 存储 JSON 格式的数据,可以灵活处理半结构化数据。 |