SQL Server 数据类型详解

时间:2024-11-15 10:02:55

1.整数
整数型数据包括bigint型、int型、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型数据的存储大小为4个字节,共32位。其中31位用于表示数值的大小,1位用于表示符号。int型数据存储的数值范围是-231~231-1,即-2 147 483 648 ~ 2 147 483 647。

·smallint型数据的存储大小为2个字节,共16位。其中15位用于表示数值的大小,1位用于表示符号。smallint型数据存储的数值范围是-215~215-1,即-32 768 ~ 32 767。

·tinyint型数据的存储大小只有1个字节,共8位,全部用于表示数值的大小,由于没有符号位,所以tinyint型的数据只能表示正整数。tinyint型数据存储的数值范围是-27~27-1,即-256~255。

2.浮点
浮点数据类型用于存储十进制小数。在SQL Server 2000中浮点数值的数据采用上舍入(Round up)的方式进行存储,也就是说,要舍入的小数部分不论其大小,只要是一个非零的数,就要在该数字的最低有效位上加1,并进行必要的进位。由于浮点数据为近似值,所以并非数据类型范围内的所有数据都能精确地表示。

浮点数据类型包括real型、float型、decimal型和numeric型。

·real型数据的存储大小为4个字节,可精确到小数点后第7位数字。这种数据类型的数据存储范围为从-3.40E+38 ~ -1.18E-38,0和1.18E-38 ~ 3.40E+38。

·float型的数据存储大小为8个字节,可精确到小数点后第15位数字。这种数据类型的数据存储范围为从-1.79E+308 ~ -2.23E-308,0和2.23E+308 ~ 1.79E+308。

float型的数据可写成float[(n)]的形式。其中n是1~15之间的整数值,指定float型数据的精度。当n为1~7时,实际上用户定义了一个real型的数据,系统用4个字节存储;当n为8~15时,系统认为它是个float型的数据,用8个字节存储它。这样既增强了数据定义的灵活性,又节省了空间。

·decimal数据类型和numeric数据类型的功能完全一样,它们都可以提供小数所需要的实际存储空间,但也有一定的限制,用户可以用2~17个字节来存储数据,取值范围是-1038+1 ~ 1038-1。

decimal型数据和numeric型数据的定义格式为decimal[(p,[s])]和numeric[(p,[s])],其中p表示可供存储的值的总位数(不包括小数点),默认值为18;s表示小数点后的位数,默认值为0;参数之间的关系是0≤s≤p。例如:decimal(15,5)表示共有15位数,其中整数10位,小数5位。