(二)字段类型

概述:

 

系统数据类型详情:

 

 

 

常见数据类型所占用的字节数:

  数据类型大致分为四种: 数值类型、日期和时间类型、字符串类型GUID, 使用DataLength()能够查看任意数据类型的变量所占用的字节数量.

1.  数值类型

对于整数类型:  tinyInt占用1byte, 表示的整数范围是0~255.

                          smallInt占用2byte,  int占用4byte, bigint占用8byte

 

对于小数类型:  decimal(p, s)表示精确的小数类型, float(n)表示近似的小数类型

 

2. 日期和时间类型

date表示日期, 占用3b

datetime2(n), 根据时间的毫秒部分来确定占用的字节数量:

当n是1、或2时,占用6b;

当n是3、或4时,  占用7b;

当n是5、6、或7时, 占用8b;

 

3.字符类型.

   建议使用变长字符类型, varchar和nvarchar,后者占用的字节是前者一倍;如果数据中都是拉丁字母, 使用varchar更好。

  对于LOB数据类型, 建议使用varchar(max)和nvarchar(max),单列能够存储最大2GB的数据。

  对于varchar(N), N是取值范围的上限是8000, 下限是1, 可变长度单字节字符类型的取值范围是[1~8000]; 

  对于varchar(n),  n的最大值是8000.

       对于nvarchar(n), n的最大值是4000.

  不管用于变量、还是用于table column, 都不能超过8000Bytes, 这种限制是由SQLServer的一个Page=8KB决定的。如果存储的数据占用的字节数超过8000, 那么必须使用LOB类型; 

varchar(max)和nvarchar(max), max突破长度8000Byte的限制,达到LOB的最大值2GB.

 

4. UniqueIdentifier类型

UniqueIdentifier数据类型占用16B, GUID的格式是8-4-4-4-12, 即"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", 不要使用varchar来存储GUID

 

 

SQL中char、varchar、nvarchar的区别:

1.  char

 char存储固定长度数据很方便, Char字段上的索引效率级高, 比如定义char(10),那么不论你存储的数据是否达到10个字节, 都要占用10个字节的空间,不足的自动用空格填充,所以在读取的时候可能要多次用到trim().

 

2. varchar

 存储变长数据, 但存储效率没有Char高。如果一个字段可能的值是不固定长度的,我们只知道它不可能超过10个字符。把它定义为varchar(10)是最合算的。 varchar类型的实际长度是它的值得实际长度+1. 

 +1个字节, 这一个字节用于保存实际使用了多大的长度。

    从空间上考虑, 用varchar合适;从效率上考虑,用char合适,关键是根据情况找到权衡点

 

3. Text

  text存储可变长度的非unicode数据, 最大长度为2^31-1(2,147,483,647)个字符.

posted @ 2019-12-13 14:36  黑涩小豆  阅读(657)  评论(0)    收藏  举报