SQL Server数据类型的存储字节数

来源:百度知道 编辑:UC知道 时间:2024/05/17 02:04:11
对于SQL Server的int类型的存储字节数位4字节但是其取值范围却为-2147483648到2147483647,我想问一下这里的4到底是只不管这个数有多大都只占用4字节的空间还是随着这个数的增大其存储所需的空间也要随着变大呢,比如:12124545这个数字明显不止占用4个字节的,应该怎么解释呢,望各位高手赐教,谢谢!!!另外分不是舍不得是 没有了 还请见谅!!
谢谢各位的回答,首先一楼大哥说的够彻底,我就是要了解他的原理才能在任何时候都不会出错,再次感谢各位朋友的帮助 ,谢谢!!

首先你要理解存储单位,一个字节就是8个比特位,4个字节有32位,int类型的第一位用来表示数字的符号,还剩下31位可用来表示数据。数据是用二进制存放的,2的31次方是2147483648,因此其取值范围却为-2147483648到2147483647。

资料类型 bigint
范围 -2^63 (-9,223,372,036,854,775,808) 到 2^63-1 (9,223,372,036,854,775,807)
储存体 8 位元组

资料类型 int
范围 -2^31 (-2,147,483,648) 到 2^31-1 (2,147,483,647)
储存体 4 位元组

资料类型 smallint
范围 -2^15 (-32,768) 到 2^15-1 (32,767)
储存体 2 位元组

资料类型 tinyint
范围 0 到 255
储存体 1 位元组

存储大小的计算也字段的类型有关,而也显示长短无关

datetime 和 smalldatetime和GUID列也是一样的道理

用实践事实来回答你这个问题吧。
例如我的一个字段值是 INT类型

create table ceshi (hhid int)

insert into ceshi values(123456789)

select * from ceshi
--123456789
我的意思是:虽然帮助里面写的 INT 最大存储字节为4字节,但是你从来不需要考虑。这个字段下存不了那么多的值怎么办。
实践才是真理!谢谢。

楼主真的好悲催。。。