Sql server 2008 r2 我的Sql server 2008 r2中的未签名短数据类型
我想在SQL server数据库中存储端口号。通常情况下,任何端口都可以具有(0到65535)之间的值 在下面的链接中提到,“unsigned short”将适用于存储端口号 但在我的案例中,我正在起诉SQLServer2008R2,那么我可以使用哪种数据类型来表示“unsignedshort” 关于请参阅 您可以使用: 但即使是最小的精度(1-9)也是5字节 查看(并忽略Sql server 2008 r2 我的Sql server 2008 r2中的未签名短数据类型,sql-server-2008-r2,Sql Server 2008 R2,我想在SQL server数据库中存储端口号。通常情况下,任何端口都可以具有(0到65535)之间的值 在下面的链接中提到,“unsigned short”将适用于存储端口号 但在我的案例中,我正在起诉SQLServer2008R2,那么我可以使用哪种数据类型来表示“unsignedshort” 关于请参阅 您可以使用: 但即使是最小的精度(1-9)也是5字节 查看(并忽略bigint,因为这太过分了): 。。。smallint太小,所以只需使用integer。与每次decimal/numeri
bigint
,因为这太过分了):
。。。
smallint
太小,所以只需使用integer
。与每次decimal
/numeric
相比,它每次都会为您节省一个额外的字节。感谢您的回复,但是为什么int总是占据4个字节,而不管它的长度如何。我的意思是,如果我有像(2000000)这样的整数和像(420)这样的整数,这两个整数会占用相同的存储空间吗?@johnG-它们都会占用相同的存储空间,因为SQL Server就是这样为该数据类型存储它们的。
Precision Storage bytes
1-9 5
10-19 9
20-28 13
29-38 17
Data type Range Storage
int -2^31 (-2,147,483,648) to 2^31-1 (2,147,483,647) 4 Bytes
smallint -2^15 (-32,768) to 2^15-1 (32,767) 2 Bytes
tinyint 0 to 255 1 Byte