MSSQL数据类型-整数数据类型(bigint、int、smallint、tinyint)

作者: wxfeng 分类: 数据库 发布时间: 2020-03-06 22:59

整数型数据包括bigint型、int型、bit、smallint型和tinyint型。

bigint型数据的存储大小为8个字节,共64位。其中63位用于表示数值的大小,1位用于表示符号。bigint型数据可以存储的数值范围是-263~263-1,即 -9 223 372 036 854 775 808 ~9 223 372 036 854 775 807。 在应用中除非明确说明,否则那些接受int表达式作为其参数的函数、语句和系统存储过程都不会改变,从而不会支持将 bigint表达式隐式转换为这些参数。因此,当 bigint值在int数据类型支持的范围内时,SQL Server 才将 bigint隐式转换为int。如果 bigint表达式包含了一个在int数据类型支持范围之外的值,就会在运行时出现转换错误。

int型数据的存储大小为4个字节,共32位。其中31位用于表示数值的大小,1位用于表示符号。int型数据存储的数值范围是-231~231-1,即-2 147 483 648~ 2 147 483 647。在早期的微型机中,int占用2字节,16比特,数据范围为-32768~32767[-2^15~2^15-1]。int类型一般作为编号,主键存在,在大数据表中数据足够大时升级为bigint类型。

smallint型数据的比int更小存储大小为2个字节,共16位。其中15位用于表示数值的大小,1位用于表示符号。smallint型数据存储的数值范围是有符号的SMALLINT值的范围是 –2^15到2^15 – 1,即–32768到32767。无符号的SMALLINT值范围是0到2^16–1,即0到65535。SMALLINT数据类型是一种精确数值数据类型,其精度在算术运算后不变。它需要2个字节存储。

tinyint型数据的存储大小只有1个字节,共8位,全部用于表示数值的大小,由于没有符号位,所以tinyint型的数据只能表示正整数。tinyint型数据存储的数值范围是0~255。TINYINT类型的字段如果不设置UNSIGNED类型,存储-128到127的整数。一个TINYINT型数据只占用一个字节,一个INT型数据占用四个字节。这看起来似乎差别不大,但是在比较大的表中,字节数的增长是很快的。

bit型数据其数据有两种取值:0或1,长度为1位。在输入0以外的其他值时,系统均把它们存储为1。这种数据类型常作为逻辑变量使用,用来表示真、假或是、否等二值选择。

另外在数据类型的选取方面,一旦你已经创建了一个字段,要修改它是很困难的。因此,为安全起见,你应该预测一下,一个字段所需要存储的数值最大有可能是多大,然后选择适当的数据类型。选择适合它的数据类型这样有助于系统的空间使用有属于数据的检索。尤其是大数据表中一定要谨慎选取数据类型。

如果觉得我的文章对您有用,请随意赞赏。您的支持将鼓励我继续创作!

发表评论

电子邮件地址不会被公开。 必填项已用*标注