【tinyint什么类型】在数据库设计中,`TINYINT` 是一种常见的数据类型,主要用于存储小范围的整数值。它常用于需要节省存储空间的场景,例如表示布尔值、状态码或小范围的计数等。
以下是对 `TINYINT` 类型的总结:
一、`TINYINT` 类型概述
属性 | 说明 |
数据类型 | 整数型 |
存储大小 | 1 字节(8 位) |
取值范围 | -128 到 127 或 0 到 255(取决于是否为无符号) |
是否支持符号 | 可选(有符号或无符号) |
常见用途 | 布尔值、状态码、小范围计数等 |
二、有符号与无符号的区别
类型 | 最小值 | 最大值 | 说明 |
TINYINT SIGNED | -128 | 127 | 默认类型,允许负数 |
TINYINT UNSIGNED | 0 | 255 | 仅支持非负数,适用于状态码等场景 |
三、使用场景建议
- 布尔值:通常用 `TINYINT(1)` 表示 `0`(false)和 `1`(true)。
- 状态码:如订单状态(0: 未支付,1: 已支付,2: 已发货等)。
- 小范围计数:如用户等级(1~10级),可以使用 `TINYINT UNSIGNED`。
四、与其他整数类型的对比
类型 | 存储大小 | 取值范围 | 适用场景 |
TINYINT | 1 字节 | -128 ~ 127 / 0 ~ 255 | 小范围整数 |
SMALLINT | 2 字节 | -32768 ~ 32767 / 0 ~ 65535 | 中等范围整数 |
MEDIUMINT | 3 字节 | -8388608 ~ 8388607 / 0 ~ 16777215 | 较大范围整数 |
INT | 4 字节 | -2147483648 ~ 2147483647 / 0 ~ 4294967295 | 通用整数 |
BIGINT | 8 字节 | -9223372036854775808 ~ 9223372036854775807 / 0 ~ 18446744073709551615 | 大范围整数 |
五、注意事项
- 在 MySQL 中,`TINYINT(1)` 并不表示字段的长度,而是影响显示宽度,实际存储仍是 1 字节。
- 使用 `UNSIGNED` 可以避免负数,提高存储效率。
- 在设计数据库时,应根据实际需求选择合适的数据类型,避免浪费存储空间。
通过以上内容可以看出,`TINYINT` 是一个轻量级但非常实用的数据类型,适合存储小范围的整数值,尤其在对性能和存储效率有要求的系统中非常常见。