(二)字段类型
概述:

系统数据类型详情:

常见数据类型所占用的字节数:
数据类型大致分为四种: 数值类型、日期和时间类型、字符串类型、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)个字符.

浙公网安备 33010602011771号