数据类型
字符串类型 - 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 数据