# 字段类型详解

URL: https://caijiao.org/mariadb/table/types
Source: docs/mariadb/table/types.md
Description: 本节详细介绍 MariaDB 中常用的字段类型，包括数值类型、字符串类型、日期时间类型等，帮助你根据业务需求合理选择数据类型。

MariaDB 支持多种字段类型，主要分为数值类型、字符串类型和日期时间类型。

## 1. 数值类型

| 类型         | 描述                             | 大小范围                     |
| ------------ | -------------------------------- | ---------------------------- |
| `TINYINT`    | 小整数                           | -128 到 127                  |
| `SMALLINT`   | 小整数                           | -32,768 到 32,767            |
| `MEDIUMINT`  | 中等大小整数                     | -8,388,608 到 8,388,607      |
| `INT` 或 `INTEGER` | 标准整数                   | -2,147,483,648 到 2,147,483,647 |
| `BIGINT`     | 大整数                           | -9,223,372,036,854,775,808 到 9,223,372,036,854,775,807 |
| `FLOAT`      | 单精度浮点数                     | 约 ±1.5e−45 到 ±3.4e+38     |
| `DOUBLE`     | 双精度浮点数                     | 约 ±2.2e−308 到 ±1.8e+308   |
| `DECIMAL(M,D)` | 精确的小数，适合财务计算      | 指定总位数 M 和小数位数 D   |

## 2. 字符串类型

| 类型          | 描述                           | 最大长度                     |
| ------------- | ------------------------------ | ---------------------------- |
| `CHAR(n)`     | 定长字符串，长度为 n           | 0 到 255 字节                |
| `VARCHAR(n)`  | 变长字符串，最大长度 n         | 0 到 65,535 字节             |
| `TEXT`        | 长文本                         | 65,535 字节                 |
| `MEDIUMTEXT`  | 中等长度文本                   | 16,777,215 字节              |
| `LONGTEXT`    | 超长文本                       | 4,294,967,295 字节           |

## 3. 日期和时间类型

| 类型          | 描述                           | 格式                        |
| ------------- | ------------------------------ | ---------------------------- |
| `DATE`        | 日期                           | 'YYYY-MM-DD'                 |
| `DATETIME`    | 日期和时间                     | 'YYYY-MM-DD HH:MM:SS'        |
| `TIMESTAMP`   | 时间戳                         | 自动记录当前时间             |
| `TIME`        | 时间                           | 'HH:MM:SS'                   |
| `YEAR`        | 年份                           | 4 位年份                    |

## 4. 其他类型

- `ENUM`：枚举类型，限定字段值只能是预定义的列表中的某一个。
- `SET`：集合类型，字段值可以包含多个预定义值的组合。

---

合理选择字段类型，有助于节省存储空间和提高查询效率，同时保证数据的准确性和完整性。
