系统:Win10
Java:1.8.0_333
IDEA:2020.3.4
MySQL:8.0.30
Gitee:https://gitee.com/lijinjiang01/JavaWeb
关于 MySQL 的数据类型,官方文档这里有详细说明:https://dev.mysql.com/doc/refman/8.0/en/data-types.html
MySQL 支持多种数据类型,总共可以分为五大类
| 数据类型 | 类型举例 |
|---|
| 数值类型 | 位值类型 | BIT |
| 整数类型(精确值) | TINYINT、SMALLINT、MEDIUMINT、INT、INTEGER、BIGINT |
| 浮点类型(近似值) | FLOAT、DOUBLE |
| 定点类型(精确值) | DECIMAL、NUMERIC |
| 日期和时间类型 | YEAR、TIME、DATE、DATETIME、TIMESTAMP |
| 字符串(字符和字节)类型 | BINARY、VARBINARY、CHAR、VARCHAR、TEXT、ENUM、SET |
| 空间类型 | 单值类型 | POINT、LINESTRING、POLYGON、GEOMETRY |
| 集合类型 | MULTIPOINT、MULTILINESTRING、MULTIPOLYGON、GEOMETRYCOLLECTION |
| JSON 类型 | JSON 对象 |
1.数值类型
MySQL 中的数值类型可分为整数型、浮点数型和定点数型
1.1 整数类型(精确值)
| 分类 | 数据类型 | 存储 | 有符号取值范围 | 无符号取值范围 | 描述 |
|---|
| 整数类型(精确值) | tinyint | 1 byte | -128 - 127 | 0 - 255 | 小整数值 |
| smallint | 2 bytes | -32768 - 32767 | 0 - 65535 | 大整数值 |
| mediumint | 3 bytes | -8388608 - 8388607 | 0 - 16777215 | 大整数值 |
| int/integer | 4 bytes | -2147483648 - 2147483647 | 0 - 4294967295 | 大整数值 |
| bigint | 8 bytes | -2^63 - 2^63-1 | 0 - 2^64 - 1 | 极大整数值 |
1.2 浮点类型(近似值)
| 分类 | 数据类型 | 存储 | 描述 |
|---|
| 浮点类型(近似值) | float | 4 bytes | 单精度浮点数值 |
| double | 8 bytes | 双精度浮点数值 |
1.3 定点类型(精确值)
| 分类 | 数据类型 | 存储 | 描述 |
|---|
| 定点类型(精确值) | decimal | 变化 | 精确存储数值 |
| numeric | 变化 | 同decimal |
2.日期和时间类型
| 分类 | 数据类型 | 存储 | 描述 |
|---|
| 日期和时间类型 | year | 1 byte | 年份值 |
| time | 3 bytes | 时间值或持续时间 |
| date | 3 bytes | 日期值 |
| datetime | 8 bytes | 混合日期和时间值 |
| timestamp | 4 bytes | 混合日期和时间值、时间戳 |
3.字符串类型
BINARY、VARBINARY、CHAR、VARCHAR、TEXT、ENUM、SET
| 分类 | 数据类型 | 值的长度 | 长度范围 | 存储 | 描述 |
|---|
| 字符串类型 | binary | M | 0 <= M <= 255 | M bytes | 定长二进制字符串 |
| varbinary | M | 0 <= M <= 65535 | M+1 bytes | 变长二进制字符串 |
| char | M | 0 <= M <= 255 | M bytes | 定长字符串 |
| varchar | M | 0 <= M <= 65535 | M+1 bytes | 变长字符串 |
| text | L | 0 <= L <= 65535 | L+2 bytes | 长文本数据 |
| enum | L | 0 <= L <= 65535 | 1 or 2 bytes | 枚举类型 |
| set | L | 0 <= L <= 64 | 1, 2, 3, 4, or 8 bytes | 字符串对象 |