数据类型
字符串类型 - STRINGS
| 类型 | 描述 | 场景 |
|---|---|---|
| CHAR(X) | 固定长度的字符串 | 身份证号、手机号 |
| VARCHAR(X) | 不定长度的字符串,最大空间 64KB | 用户名、密码、邮箱、地址 |
| TINYTEXT | 不定长度的字符串,最大空间 225B | 标签 |
| TEXT | 不定长度的字符串,最大空间 64KB | 帖子、文章 |
| MEDIUMTEXT | 不定长度的字符串,最大空间 16MB | 帖子、文章 |
| LONGTEXT | 不定长度的字符串,最大空间 4GB | 大型富文本、大型文档 |
TIP
- 为什么字符串类型可以存储身份证号这种数值型?
- 答:因为我们不对其做数值运算
- TEXT 和 VARCHAR 怎么选?
- TODO
整型 - INTEGERS
| 类型 | 空间 | 描述 | 场景 |
|---|---|---|---|
| TINYINT | 1B | 范围 [-128, 127](有符号),[0, 255](无符号) | 年龄、存储小范围的整数值 |
| SMALLINT | 2B | [-32768, 32767] [0, 65535] | 年份 |
| MEDIUMINT | 3B | - | - |
| INT/INTEGER | 4B | - | 用户 ID、计数器 |
| BIGINT | 8B | - | 主键、订单号 |
浮点 - RATIONS
| 类型 | 描述 | 场景 |
|---|---|---|
| DECIMAL(p, s) | p:存储的数,s:精度 DECIMAL(9, 2) => 1234567.89 | 货币 |
| FLOAT | 特别小的数,没有精度 | 科学运算 |
| DOUBLE | 特别大的数,没有精度 | 科学运算 |
布尔 - BOOLEANS
| 类型 | 描述 | 场景 |
|---|---|---|
| BOOL/BOOLEAN | 布尔 | 是否删除、是否发布 |
枚举 - ENUMS
| 类型 | 描述 | 场景 |
|---|---|---|
| ENUM(X,Y) | ENUM('small', 'medium','large') | 枚举 |
时间 - DATE/TIME
| 类型 | 描述 | 场景 |
|---|---|---|
| DATE | 日期,格式为 'YYYY-MM-DD' | 存储日期,不包含时间信息 |
| TIME | 时间,格式为 'HH:MM:SS' | 存储时间,不包含日期信息 |
| DATETIME | 日期和时间,格式为 'YYYY-MM-DD HH:MM:SS' | 存储日期和时间,精确到秒级别 |
| TIMESTAMP | 时间戳,格式为 'YYYY-MM-DD HH:MM:SS',只能存储 2038 年以前的 | 存储日期和时间,精确到秒级别,受时区影响 |
| YEAR | 年份,格式为 'YYYY' | 存储年份信息,可以使用 2 位或 4 位年份表示 |
BLOBS
存储视频、图片、PDF、WORD 等文件,包括所有二进制数据
JSON
存储 json 数据
limy-blog