🔄Update: MySQL
This commit is contained in:
@@ -0,0 +1,127 @@
|
||||
# 字段类型
|
||||
|
||||
- 数值类型
|
||||
- 整型
|
||||
- `TINYINT`
|
||||
- `SMALLINT`
|
||||
- `MEDIUMINT`
|
||||
- `INT`
|
||||
- `BIGINT`
|
||||
- 浮点型
|
||||
- `FLOAT`
|
||||
- `DOUBLE`
|
||||
- 定点型
|
||||
- `DECIMAL`
|
||||
- 字符串类型
|
||||
- 常用
|
||||
- `CHAR`
|
||||
- `VARCHAR`
|
||||
- TEXT 类
|
||||
- `TINYTEXT`
|
||||
- `TEXT`
|
||||
- `MEDIUMTEXT`
|
||||
- `LONGTEXT`
|
||||
- BLOB 类
|
||||
- `TINYBLOB`
|
||||
- `BLOB`
|
||||
- `MEDIUMBLOB`
|
||||
- `LONGBLOB`
|
||||
- 日期时间类型
|
||||
- `YEAR`
|
||||
- `TIME`
|
||||
- `DATE`
|
||||
- `DATETIME`
|
||||
- `TIMESTAMP`
|
||||
|
||||
**`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` 存储
|
||||
Reference in New Issue
Block a user