2.4 KiB
2.4 KiB
字段类型
- 数值类型
- 整型
TINYINTSMALLINTMEDIUMINTINTBIGINT
- 浮点型
FLOATDOUBLE
- 定点型
DECIMAL
- 整型
- 字符串类型
- 常用
CHARVARCHAR
- TEXT 类
TINYTEXTTEXTMEDIUMTEXTLONGTEXT
- BLOB 类
TINYBLOBBLOBMEDIUMBLOBLONGBLOB
- 常用
- 日期时间类型
YEARTIMEDATEDATETIMETIMESTAMP
UNSIGNED 熟悉有什么用
ID- 不允许负值
- 允许更高的上限范围
CHAR 和 VARCHAR 的区别
CHAR- 定长
- 存储时填充空格
- 适用:加密后密码、身份证号码
VACHAR- 需要额外一个或两个字节记录字符串长度
- 适用:商品名称、用户昵称
VARCHAR(100) 和 VARCHAR(10) 的区别
- 磁盘空间
- 无区别
- 内存空间
- 有差异
- 排序时按照最大长度进行
DECIMAL 和 FLOAT/DOUBLE 的区别
- 定点数
- 存储有精度要求的小数
- 货币
- 浮点数
- 存储近似的小数值
0.1f + 0.2f != 0.3f
为什么不推荐使用 TEXT 和 BLOB
| 类型 | 可存储大小 | 用途 |
|---|---|---|
| TINYTEXT | 0-255 字节 | 一般文本字符串 |
| TEXT | 0-65,535 字节 | 长文本字符串 |
| MEDIUMTEXT | 0-16,772,150 字节 | 较大文本数据 |
| LONGTEXT | 0-4,294,967,295 字节 | 极大文本数据 |
| 类型 | 可存储大小 | 用途 |
|---|---|---|
| TINYBLOB | 0-255 字节 | 短文本二进制字符串 |
| BLOB | 0-65KB | 二进制字符串 |
| MEDIUMBLOB | 0-16MB | 二进制形式的长文本数据 |
| LONGBLOB | 0-4GB | 二进制形式的极大文本数据 |
数据库规范不推荐使用——
- 不能有默认值
- 检索效率低
- 不能直接创建索引
- 可能会消耗大量 IO 资源
- 导致表上的 SQL 变慢
DATETIME 和 TIMESTAMP 的区别
DATETIME- 没有时区信息
TIMESTAMP- 有时区信息
NULL 和 '' 的区别
NULL- 不确定的值
- 不等于任何值
- 大多数聚合函数会忽略
- ''
- 空字符串
- 已知的值
Boolean 类型如何表示
TINYINT(1)
手机号存储使用 INT 还是 VARCHAR
VARCHAR
- 格式性
- 前导零
- 分隔符
- 前缀
- 非算数性
- 不需要数学运算
- 查询灵活性
LIKE直观高效
- 加密
- 加密后长度无法用
INT/BIGINT存储
- 加密后长度无法用