
MySQL 字段类型说明
MySQL 支持多种数据类型,每种数据类型都有其特定的用途和存储需求。以下是对 MySQL 中常见字段类型的详细说明:
一、数值类型(Numeric Types)
整数类型(Integer Types)
- 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(无符号)。
浮点数类型(Floating-Point Types)
- FLOAT(p):单精度浮点数,非精确值,适合存储需要较大范围的浮点数值。p 表示总位数(精度),但并非所有位都是精确的。
- DOUBLE 或 DOUBLE PRECISION(p):双精度浮点数,比 FLOAT 更精确,适用于需要更高精度的科学计算。
- DECIMAL(M, D) 或 NUMERIC(M, D):定点数,用于存储精确的小数点数值。M 是数字的最大位数(精度),D 是小数点后的位数(标度)。
二、日期和时间类型(Date and Time Types)
- DATE:日期值,格式为 'YYYY-MM-DD'。
- TIME:时间值,格式为 'HH:MM:SS'。
- DATETIME:日期和时间值,格式为 'YYYY-MM-DD HH:MM:SS'。
- TIMESTAMP:时间戳,与 UNIX 时间戳兼容,自动记录创建或修改的时间。格式类似于 DATETIME,但可以自动更新。
- YEAR:年份值,格式为 YYYY。
三、字符串类型(String Types)
字符类型(Character Types)
- CHAR(n):固定长度的字符串,最多可存储 n 个字符。如果存储的字符串长度小于 n,则会在右侧填充空格。
- VARCHAR(n):可变长度的字符串,最多可存储 n 个字符。实际存储空间为字符串的长度加 1 或 2 个字节(用于存储长度信息)。
文本类型(Text Types)
- TINYTEXT:非常小的文本字符串,最大长度为 255 个字符。
- TEXT:小文本字符串,最大长度为 65,535 个字符(约 64 KB)。
- MEDIUMTEXT:中等大小的文本字符串,最大长度为 16,777,215 个字符(约 16 MB)。
- LONGTEXT:大文本字符串,最大长度为 4,294,967,295 个字符(约 4 GB)。
二进制数据类型(Binary Data Types)
- BINARY(n):类似 CHAR,但存储的是二进制数据。
- VARBINARY(n):类似 VARCHAR,但存储的是二进制数据。
- TINYBLOB:非常小的 BLOB,最大长度为 255 个字节。
- BLOB:小 BLOB,最大长度为 65,535 个字节(约 64 KB)。
- MEDIUMBLOB:中等大小的 BLOB,最大长度为 16,777,215 个字节(约 16 MB)。
- LONGBLOB:大 BLOB,最大长度为 4,294,967,295 个字节(约 4 GB)。
