1.字符数据类型
字符数据类型包括 、、、、 以及 。这些数据类型用于存储字符
数据。 和 类型的主要区别是数据填充。如果有一表列名为 且数据类型为
,同时将值 存储到该列中,则物理上只存储 个字节。但如果在数据类型为
的列中存储相同的值,将使用全部 个字节。 将插入拖尾空格来填满 个字符。
如果要节省空间,那么为什么还使用 数据类型呢?使用 数据类型会稍增加一些系统开销。
例如,如果要存储两字母形式的州名缩写,则最好使用 列。尽管有些 认为应最大可能地节
省空间,但一般来说,好的做法是在组织中找到一个合适的阈值,并指定低于该值的采用 数据类型,
反之则采用 数据类型。通常的原则是,任何小于或等于 个字节的列应存储为 数据类型,
而不是 数据类型。如果超过这个长度,使用 数据类型的好处将超过其额外开销。
数据类型和 数据类型的工作方式与对等的 数据类型和 数据类型相同,但
这两种数据类型可以处理国际性的 字符。它们需要一些额外开销。以 形式存储的数据
为一个字符占两个字节。如果要将值 存储到 列,它将使用 个字节;而如果将它存储
为 ,则需要使用 字节。由于这些额外开销和增加的空间,应该避免使用 列,除
非确实有需要使用它们的业务或语言需求。
接下来要提的数据类型是 和 。 数据类型用于在数据页内外存储大型字符数据。应尽可能
少地使用这两种数据类型,因为可能影响性能但可在单行的列中存储多达 的数据。与 数据类型
相比,更好的选择是使用 类型,因为将获得更好的性能。另外, 和 数据类型
在 的一些未来版本中将不可用,因此现在开始还是最好使用 和
而不是 和 数据类型。
表 ! 列出了这些类型,对其作了简单描述,并说明了要求的存储空间。
表 1-1
数 据 类 型 描 述 存 储 空 间
"
为 #$ 字符之间 字节
为 # 字符之
间
字节+ 字
节额外开销
最多为
%
&
'% ' $% 字符
每字符 字节
最多为
%
&
'% ' $% 字符
(字符数+ 字
节额外开销
)
最多为
%
&
每字符 字节