整数类型
| MySQL 数据类型 | 说明 | Java 对应类型 | 备注 |
|---|
TINYINT | 1 字节,范围:-128 ~ 127 | byte | 无符号时范围 0~255,可对应short |
SMALLINT | 2 字节,范围:-32768 ~ 32767 | short | 无符号时范围 0~65535,可对应int |
MEDIUMINT | 3 字节,范围:-8388608 ~ 8388607 | int | MySQL 特有类型,Java 中无对应,用int |
INT/INTEGER | 4 字节,范围:-2^31 ~ 2^31-1 | int | 最常用的整数类型 |
BIGINT | 8 字节,范围:-2^63 ~ 2^63-1 | long | 存储大整数时使用 |
. 浮点 / 小数类型
| MySQL 数据类型 | 说明 | Java 对应类型 | 备注 |
|---|
FLOAT | 4 字节单精度浮点数 | float | 精度较低,适合存储近似值 |
DOUBLE | 8 字节双精度浮点数 | double | 精度高于FLOAT,常用 |
DECIMAL(M,D) | 高精度小数(M 为总位数,D 为小数位) | java.math.BigDecimal | 适合金融等需精确计算的场景(如金额) |
3. 字符串类型
| MySQL 数据类型 | 说明 | Java 对应类型 | 备注 |
|---|
CHAR(n) | 固定长度字符串(n 为长度) | String | 长度不足时用空格填充,适合短字符串 |
VARCHAR(n) | 可变长度字符串(n 为最大长度) | String | 仅存储实际长度,节省空间,常用 |
TEXT | 长文本(最大 65535 字节) | String | 适合存储大文本(如文章内容) |
MEDIUMTEXT | 中等长度文本(最大 16MB) | String | 比TEXT存储更大的文本 |
LONGTEXT | 极大文本(最大 4GB) | String | 存储超大型文本内容 |
4. 日期时间类型
| MySQL 数据类型 | 说明 | Java 对应类型 | 备注 |
|---|
DATE | 日期(格式:YYYY-MM-DD) | java.sql.Date | 仅包含年月日 |
TIME | 时间(格式:HH:MM:SS) | java.sql.Time | 仅包含时分秒 |
DATETIME | 日期时间(格式:YYYY-MM-DD HH:MM:SS) | java.sql.Timestamp | 包含年月日时分秒,精度到秒 |
TIMESTAMP | 时间戳(UTC 时间,格式同 DATETIME) | java.sql.Timestamp | 受时区影响,适合记录事件发生时间 |
YEAR | 年份(格式:YYYY) | short 或 int | 范围 1901~2155,可用整数类型存储 |
5. 二进制 / 字节类型
| MySQL 数据类型 | 说明 | Java 对应类型 | 备注 |
|---|
BINARY(n) | 固定长度二进制数据 | byte[] | 类似CHAR的二进制版本 |
VARBINARY(n) | 可变长度二进制数据 | byte[] | 类似VARCHAR的二进制版本 |
BLOB | 二进制大对象(最大 65535 字节) | byte[] 或 InputStream | 存储图片、文件等二进制数据 |
MEDIUMBLOB | 中等二进制对象(最大 16MB) | byte[] 或 InputStream | 存储较大的二进制数据 |
LONGBLOB | 极大二进制对象(最大 4GB) | byte[] 或 InputStream | 存储超大型二进制数据 |
6. 其他特殊类型
| MySQL 数据类型 | 说明 | Java 对应类型 | 备注 |
|---|
BOOLEAN/BOOL | 布尔类型(0=false,1=true) | boolean | MySQL 中本质是TINYINT(1)的别名 |
ENUM | 枚举类型(预定义值集合) | String | 存储枚举中的字符串值 |
SET | 集合类型(多个预定义值) | String | 存储逗号分隔的选中值 |
博客内容均系原创,未经允许严禁转载!