数据类型
字符型
关键字 | Unicode编码 | 最大长度 | 长度 |
---|---|---|---|
char | 非 | 8000 | 定长,不可回收 |
varchar | 非 | 8000 | 不定长,可回收 |
nchar | 是 | 4000 | 定长,不可回收 |
nvarchar | 是 | 4000 | 不定长,可回收 |
- 非unicode编码每个字符长为1个字节,unicode编码每个字符长为2个字节,汉字为两个字节
使用varchar可以回收空间节省,为何还要使用char?
varchar由于不定长,查询时逐个比较。char定长,查询时比较快。
数字型
bit 范围0到1
int 4个字节,有正负
bigint 8个字节,有正负
float 精度有问题
numeric(p[, s]) 带定点精度和小数位数
p(精度)
指定小数点左边和右边可以存储的十进制数字的最大个数。精度必须是从 1 到最大精度之间的值。最大精度为 38。
s(小数位数)
指定小数点右边可以存储的十进制数字的最大个数。小数位数必须是从 0 到 p 之间的值。默认小数位数是 0,因而 0 <= s <= p。最大存储大小基于精度而变化。