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。
这些整数类型可以指定显示宽度(例如 INT(5)),但这通常只影响显示,不影响存储大小或值的范围。
浮点数和定点数
FLOAT:单精度浮点数。DOUBLE:双精度浮点数。DECIMAL(M,N)或NUMERIC(M,N):精确的小数值,其中 M 是数字的最大位数(精度),N 是小数点后的位数(标度)。
日期和时间类型
DATE:日期,格式为 'YYYY-MM-DD'。TIME:时间,格式为 'HH:MM:SS'。DATETIME:日期和时间组合,格式为 'YYYY-MM-DD HH:MM:SS'。TIMESTAMP:时间戳,格式为 'YYYY-MM-DD HH:MM:SS',可以自动更新,并且与时区相关。YEAR:年份,可以是 2 位或 4 位数字。
字符串类型
定长字符串
CHAR(M):定长字符串,最大长度为 M 字符。如果存储的字符串长度小于 M,MySQL 会用空格填充到 M 字符长度。
变长字符串
VARCHAR(M):变长字符串,最大长度为 M 字符。存储时只使用必要的空间(加上 1 或 2 个字节来记录长度)。TINYTEXT:最大长度为 255 字节的字符串。TEXT:最大长度为 65,535 字节的字符串。MEDIUMTEXT:最大长度为 16,777,215 字节的字符串。LONGTEXT:最大长度为 4,294,967,295 字节的字符串。
二进制字符串
BINARY(M):定长二进制字符串,最大长度为 M 字节。VARBINARY(M):变长二进制字符串,最大长度为 M 字节。TINYBLOB:最大长度为 255 字节的 BLOB。BLOB:最大长度为 65,535 字节的 BLOB。MEDIUMBLOB:最大长度为 16,777,215 字节的 BLOB。LONGBLOB:最大长度为 4,294,967,295 字节的 BLOB。
空间类型
GEOMETRY:空间数据类型。POINT:点。LINESTRING:线。POLYGON:多边形。- 以及其他几种空间数据类型,如
MULTIPOINT、MULTILINESTRING、MULTIPOLYGON等。
枚举和集合类型
ENUM('value1','value2',...):枚举类型,值必须是预定义列表中的一个。SET('value1','value2',...):集合类型,可以包含零个或多个预定义列表中的值。
JSON 类型
JSON:存储 JSON 格式