SQLServer 数据类型
在操作数据库时时常碰到?char??varchar??binary??varbinary ? 固定长度存储? char按照字符存储????不同的编码每个字符对应的字节是不同?? ????????????????????gbk编码方式,每个字符占用2个字节的空间, ????????????????????????utf8编码方式,每个字符占用3个字节的空间?? binary保存二进制字符串,它保存的是字节而不是字符,没有字符集限制
? 变长存储???varchar(36)?以字符存储??最大长度36??不够36?则按实际长度存储 ??????????varbinary???以字节存储??在存储时需要将字符转换位字节 ????????????????????????????????????convert(VARBINARY(36),'dfdfsdsf') ?????????????????????????????????????否则直接把String类型转换为VARBINARY?报错 ??????????对于经常改变的值,char优于varchar,原因是固定长度的行不容易产生碎片。
? 查询时的区别:char??varchar??????查询时会把数据库中的值?和条件前后的空格自动去掉再匹配 ?????????????????????????????????不区分大小写?? ??????????????binary??varbinary??会区分大小写?按字节比较比字符简单快速 ????????????????????????????????????并不会去掉空格(原因结尾使用 填充,而不是空格?)?? ? Number(19,3)?SQL?数据库默认长度 ? SQLServer??常用类型 ? 1.char,varchar,nchar,nvarchar ???char性能好;varchar节省空间;选择方法:10个字节以上的用varchar ???n类型的占用空间大,性能低,如果不准备存中文或中亚文字则尽量避免使用。 ???尤其向类似工号的字段更不要使用n类型,首先它不会存入中文,其次它可能作为索引,此时对性能的影响就更大。 2.datetime和smalldatetime? ???datetime:从1753年1月1日到9999年12月31日的日期和时间数据,精确到毫秒。? ???smalldatetime:从1900年1月1日到2079年6月6日的日期和时间数据,精确到分钟。 3.bigint,int,smallint,tinyint和bit? ???bigint:从-2^63(-9223372036854775808)到2^63-1(9223372036854775807)的整型数据。? ???int:从-2^31(-2,147,483,648)到2^31-1(2,647)的整型数据。? ???smallint:从-2^15(-32,768)到2^15-1(32,767)的整数数据。? ???tinyint:从0到255的整数数据。? ???bit:1或0的整数数据。
???首先int,空间占用合适,运算速度快;(2147,...,...2个多亿) ???如果非常在意空间的话,考虑tinyint ???超大应用场合,考虑bigint 4.decimal和numeric? ???这两种数据类型是等效的。都有两个参数:p(精度)和s(小数位数)。p指定小数点左边和右边可以存储的十进制数字的最大个数,p必须是从?1到38之间的值。s指定小数点右边可以存储的十进制数字的最大个数,s必须是从0到p之间的值,默认小数位数是0。? 5.float和real? ???float:从-1.79^308到1.79^308之间的浮点数字数据。??? ???real:从-3.40^38到3.40^38之间的浮点数字数据。在SQL?Server中,real的同义词为float(24)。? 6.money,smallmoney ???尽量考虑用decimal替代,原因:性能稍稍好一些;相对其它数据库兼容性好。 ???money的好处是可以用到某些货币运算函数。 ???float类型尽量少用,性能不好,精度不高,一般只用于科学计算。 7.text/image?? ???考虑到维护方便、效率以及程序开发的方便性,最好不用,即不将其存入数据库中;采用varchar指向其相应的存储路径 ?参考:http://www.cnblogs.com/fttbfttb/articles/1510386.html ???????http://blog.sina.com.cn/s/blog_4de07d5e01010jc4.html (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |