数据类型
大约 2 分钟
相关信息
MySQL 中的数据类型分为几类,每种类型适用于不同种类的数据存储和处理。
数字类型
整数类型:
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
(或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 字节,适用于单精度浮点数,范围约为 -3.402823466E+38 到 3.402823466E+38。DOUBLE
(或DOUBLE PRECISION
):8 字节,适用于双精度浮点数,范围约为 -1.7976931348623157E+308 到 1.7976931348623157E+308。DECIMAL
(或NUMERIC
):可变长度,精确的小数类型,适合需要高精度的计算(如货币)。可以定义总位数和小数位数,例如DECIMAL(10, 2)
。
字符串类型
定长字符串:
CHAR(n)
:定长字符串,最大长度为 255 字符。未填满的部分用空格填充。
变长字符串:
VARCHAR(n)
:变长字符串,最大长度为 65,535 字符。n 是字符串的最大长度,不足的部分不需要填充。
文本类型:
TINYTEXT
:最大长度为 255 字符。TEXT
:最大长度为 65,535 字符。MEDIUMTEXT
:最大长度为 16,777,215 字符。LONGTEXT
:最大长度为 4,294,967,295 字符。
二进制字符串:
BINARY(n)
:定长二进制字符串,最大长度为 255 字节。VARBINARY(n)
:变长二进制字符串,最大长度为 65,535 字节。TINYBLOB
、BLOB
、MEDIUMBLOB
、LONGBLOB
:分别对应不同的二进制数据存储,最大长度分别为 255 字节、65,535 字节、16,777,215 字节和 4,294,967,295 字节。
日期和时间类型
DATE
:日期类型,格式为 YYYY-MM-DD,范围为 1000-01-01 到 9999-12-31。TIME
:时间类型,格式为 HH:MM:SS,范围为 '-838:59:59' 到 '838:59:59'。DATETIME
:日期和时间组合,格式为 YYYY-MM-DD HH:MM:SS,范围为 1000-01-01 00:00:00 到 9999-12-31 23:59:59。TIMESTAMP
:时间戳类型,格式为 YYYY-MM-DD HH:MM:SS,范围为 1970-01-01 00:00:01 UTC 到 2038-01-19 03:14:07 UTC。TIMESTAMP 会根据时区自动调整。YEAR
:年份类型,格式为 YYYY,范围为 1901 到 2155。
JSON 类型
JSON
:用于存储 JSON 格式的数据,支持对 JSON 数据的查询和操作。
其他类型
ENUM
:枚举类型,允许列出一个固定的字符串值集合,字段只能取其中之一。
CREATE TABLE example (
status ENUM('active', 'inactive', 'pending')
);
SET
:集合类型,允许列出多个字符串值,可以选择其中多个值。
CREATE TABLE example (
colors SET('red', 'green', 'blue')
);