最近和人聊起来数据库存储字段的类型区别时候发现有些字段自己也不是很清楚,回来查阅了一些资料后才对这些字段的类型有了明确的定义。
数据库字段的常见类型一般包括:
int bit char varchar nchar nvarchar decimal numeric float datetime smalldatetime当然还有一些不常用到的字段类型
int 是最常见的存储的存储类型,它存储的是从-2^31(-2,147,483,648)到2^31-1(2,147,483,647)的整型数据
bit:1或0的整数数据。一般存储bool类型的数据
char和varchar的长度都定义在1到8000之间,它们的区别在于char是定长字符数据,而varchar是变长字符数据。定长字符数据就是不管实际占用的空间是多少总是为这个字段分配这个长度的空间,不足部分默认补充英文空格,而变长字符数据则不会填充。
nchar和nvarchar则表示它表示存储的是Unicode数据类型的字符。也就是说他们的长度是在1到4000之间, 所谓的Unicode数据类型就是为了解决中文字符和英文字符集这种不兼容的问题而产生的。它所对应的英文字符改为和中文字符一样用两个字节来对应,这样做的结果就是避免了中英文存储过程中容易造成的混淆,但却是以牺牲了空间为带价的。至于他们两个的区别参照上面的解释
(4)decimal和numeric
decimal和numeric 这两种数据类型是等效的。都有两个参数:p(精度)和s(小数位数)。p指定小数点左边和右边可以存储的十进制数字的最大个数,p必须是从 1到38之间的值。s指定小数点右边可以存储的十进制数字的最大个数,s必须是从0到p之间的值,默认小数位数是0。
float:从-1.79^308到1.79^308之间的浮点数字数据
datetime:从1753年1月1日到9999年12月31日的日期和时间数据,精确到百分之三秒。
smalldatetime:从1900年1月1日到2079年6月6日的日期和时间数据,精确到分钟。