数值类型
int 类集合
类型 | tinyint | smallint | mediumint | int | bigint |
---|
无符号最大值 | 255 | 65535 | 16777215 | 4294967295 | - |
有符号最大值 | 127 | 32767 | 8388607 | 2147483647 | - |
有符号最小值 | -128 | -32768 | -8388608 | -2147483647 | - |
字节 | 1 | 2 | 3 | 4 | 8 |
bit类型
bit[(M)] : 位字段类型。M表示每个值的位数,范围是1~64,默认情况下是1。
小数类型
float[(m, d)][unsigned] : m指定显示长度,d指定小数位数,占用4个字节。
decimal(m, d) [unsigned] : 定点数m指定长度,d表示小数点的位数。
decimal 类型占用的存储空间取决于定义的精度(总位数)和小数位数,储存规则如下:
- 每 9 位数字占用 4 字节
- 整数和小数部分分开计算,字节数 = 4 * (位数 // 9) + (1 到 4 字节,取决于余数)
例如: DECIMAL(10, 2)
总位数 M=10,小数位数 D=2
整数部分位数 = 10 - 2 = 8
小数部分位数 = 2
整数部分占用:4 字节
小数部分占用:1 字节(2 位)
总字节 = 4 + 1 = 5
文本类型
char[(m)] 与 varchar[(m)]
char 为固定长度的字符串,最大为255
varchar 为可变长度的字符串,最大为65535
text : 大文本,不支持全文索引,不支持默认值
时间类型
date : 日期格式'yyyy-mm-dd', 占用3字节
datetime : 时间日期格式'yyyy-mm-dd HH:ii:ss', 占用8字节
timestamp : 时间戳,从1970年开始,格式与datetime一致,但占用4字节
选择类型
enum('选择1', '选择2', '选择3',...) : 枚举,单选类型。
set('选择1', '选择2', '选择3',...) : 集合,多选类型。
find_in_set(sub, list) 用来查找list中,包含sub的集合。