目录
基本数据类型
整数:可选择unsigned修饰
intyint 8位 (-128 - 127)
smallint 16位 (-32768 - 32767)
mediumint 24位 (-8388608 - 8388607)
int 32位 大约正负21亿
bigint 64位
实数(带有小数点):使用标准的浮点运算进行近似计算
float 4个字节
double 8个字节
decimal 最多允许65个数字
示例:decimal(5,2),说明:5位长度,2位小数精度,如果整数部分+2位小数超长,则报错,如果只是小数部分超出2两位,则四舍五入到两位小数
字符串
char:定长:msql根据定义字符串的长度一次分配足够的空间
适用场景:较短的字符串,且所有值接近同一长度varchar 变长字符串
- 比定长类型节约空间
- 但是ROW_FOMAT=FIXED每行使用定长
- 适用场景:字符串的最大长度比评估长度大很多,列的更新较少
- 缺点:频繁修改,且字符串的长度变化大时,可能出现页分裂
- 不要盲目的给过大的长度
- 在临时表或排序时可能遭遇最大长度分配内存问题
Text、Blob
1.都为存放很大的数据而设计
2.与其他数据不同,都作为独立的对象存储
3.当值太大时,使用外部存储区存储,每行只要使用1-4字节存放一个指针
text存储字符数据:tinytext
smalltext
text
mediumtext
longtext
Blob存储二进制数据:tinyblob
smallblob
blob
mediumblob
longblob
日期时间
datetime
精度:秒
与时区无关,8个字节存储空间
范围:1001 至 9999 年timestamp
保存1970年1月1日午夜以来的秒数
占用4个字节存储空间
范围:1970年 至 2038年
与时区有关
默认为NOT NULL
通常尽量使用timestamp
精度:秒date
yyyy-MM-ddtime
HH:mm:ss
选择标识符
- 用来进行关联操作
- 在其他表中作为外键
- 整型通常是标识列的最好选择
- 相关的表中使用相同的数据类型
- 尽量避免