SQL研究类似的数据类型
最常用的数字类型是int,但未必是最好的选择。Bigint、smallint字段可以应用于特殊的场合。其特点如下表所示:数据类型
范围
保管部
bigint
2 ^ 63(922337203685477580)2(922337203685477580)^ 63-1
8字节
int
2 ^ 31(2147483648)2(2147483647)^ 31-1
4字节
smallint
2 ^ 15(32768)2(32767)^ 15-1
2字节
TINYINT
0到255
1字节
可以看出,如果一列的值只有10,而使用int,则非行数据占用超过3字节。如果您有1G的行数,则在3G中占用更多的空间。如果仍在索引中,则需要占用不必要的3G。
与此类似的是浮点和实格式,它们的格式如下所示:
数据类型
范围
保管部
浮
1.79e + 308 -2.23e-308和2.23e-308到1.79e + 308, 0
取决于n的值
1, 24 = 4字节
25, 53 = 8bytes
真正的
3.40e + 38 -1.18e - 38和0 - 38,1.18e 3.40e + 38
4字节
需要解释的是,浮子的长度取决于一个参数。虽然我们在声明时通常不指定浮点的长度,但实际上有这样一个选项。这个长度的默认值是53,并且值范围显示在上表中。
显然,如果你想表达的数字不超过38倍10,你应该使用真的,他可以节省你4字节。
另一个相关的例子是十进制和数值,它们是另一组精确表示值的类型。浮点和实实在不准确,所以我们不能做同样的比较。
小数和浮点数在函数上是等价的,为什么它们被分成两个名字,我不知道。
十进制的语句如下:十进制(p,s),p表示位数,包括小数点前后的数字,s表示小数位数,p不能超过38,当然s不能超过p,默认值是0。
小数的范围是由于P-S消退的积极或消极的10减去10的时间。例如,十进制的范围(2,1)是积极的和消极的9.9。
十进制的长度与p的大小有关,如下表所示:
精度
存储字节
1 - 9
五
10-19
九
20-28
十三
29-38
十七
您可以使用可变长度的字节来存储十进制。此时,数据库根据实际值的大小存储十进制,而不是根据语句。如果表中没有var长度的列,则需要另外两个字节,否则就不再需要额外的字节。
数据库中可变长度的十进制存储可以通过以下命令启动:
执行sp_db_vardecimal_storage_format'adventureworks ',' ';
通过执行sp_db_vardecimal_storage_format;看看所有的数据库,开始这个功能。
通过执行sp_tableoption'sales。salesorderdetail ','vardecimal存储格式,1;
为一个表启动长的十进制存储。
最后,看看datetime和smalldatetime,两者都代表时间,和的区别如下:
DateTime表示更多的时间,1753到9999,更高的精度,300秒,8字节;
为smalldatetime表达时间较短,1900到2079,精确到分,4字节。
通常,smalldatetime是足够的。