SQL server数据库数据类型tinyint,smallint,int和bigint的区别

事事皆学问呀,SQL server真的博大精深,很多东西得准确掌握才能用得好。
一、类型比较
bigint:从-2^63(-9223372036854775808)到2^63-1(9223372036854775807)的整型数据,存储大小为 8 个字节。一个字节就是8位,那么bigint就有64位。
int:从-2^31(-2,147,483,648)到2^31-1(2,147,483,647)的整型数据,存储大小为 4 个字节。int类型,最大可以存储32位的数据。
smallint:从-2^15(-32,768)到2^15-1(32,767)的整数数据,存储大小为 2 个字节。smallint就是有16位。
tinyint:从0到255的整数数据,存储大小为 1 字节。tinyint就有8位。

二、注释

在支持整数值的地方支持 bigint 数据类型。但是,bigint 用于某些特殊的情况,当整数值超过 int 数据类型支持的范围时,就可以采用 bigint。在 SQL Server 中,int 数据类型是主要的整数数据类型。

在数据类型优先次序表中,bigint 位于 smallmoney 和 int 之间。

只有当参数表达式是 bigint 数据类型时,函数才返回 bigint。SQL Server 不会自动将其它整数数据类型(tinyint、smallint 和 int)提升为 bigint。

三、总结

所以选择最恰当的数据类型是非常重要的,例如,给你10个18位的全是数字的身份证号码,和10个15位的全是数字的身份证号码。让你以最快的查询的速度查找出来,这20个记录,那么你在设计这个字段的时候,应该有几个地方要注意:

1. 最快的查询速度,无非我们选择int类型的数据来存储这20个身份证号码。但是15位和18位的数据貌似只有bigint才满足条件。

2. 有人要说为啥不用varchar或者char呢。直接存成一个字符串。这个问题问的比较好,首先,int的查询速度肯定比varchar和char要快,那么int类型的数据是首选,但是int在sqlserver中有好几种。这个就要选择最恰当的数据类型。

[本日志由 ancher 于 2013-06-19 11:49 AM 更新]
上一篇: 用DIV+CSS使文字、图片垂直居中或水平居中
下一篇: Serv-U 7不支持中文名的解决办法
文章来自: 本站原创
引用通告: 查看所有引用 | 我要引用此文章
Tags: 数据类型 SQL int bigint smallint tinyint 数字型
相关日志:
评论: 0 | 引用: 0 | 查看次数: 15120
发表评论
你没有权限发表评论!