冲扬心法

笑声激发自强,发愤、图强、飞身向上

   :: 首页  ::  ::  ::  :: 管理

     SQL Server 中字符类型包括varchar、char、text等。主要用于存储字符数据。varchar和char类型的主要区别在于数据填充。例如,一个列名为FirstName且数据类型为varchar(20)的表,同时将值Brian存储到列FirstName中,那么物理上只存储5个字节。但如果在数据类型为char(20)的列中存储相同的值,将使用全部的的20个字节。SQL将插入拖尾空格来填满20个字符。

注:有这么一个问题,如果要节省空间,那么为什么还要使用char数据类型呢?这是因为使用varchar数据类型会稍微增加一些系统开销。所以,如果要存储两个字母形式的缩写,最好使用char(2),尽管有些人认为应该最大限度的节省空间,但一般来说,好的做法是找到合适的阈值,指定低于该阈值的采用char类型数据,反之则采用varchar数据类型。比如,任何小于或等于5个字节的列都应该存储为char数据类型,而不是varchar类型。超过这个长度,使用varchar数据类型的好处将超过其额外开销。

     nvarchar数据类型和nchar数据类型的工作方式于对等的varchar数据类型和char数据类型相同,但是这两种数据类型可以处理国际性的Unicode字符,他们需要一些额外的开销。以Unicode形式存储的数据为一个字符占用两个字节(这里指USC-2)。如果将值Brian存储到nvarchar列,将使用10个字节;而如果将之存储为nchar(20),就需要40个字节。

SQL server 字符数据类型
数据类型 描述 存储空间
char(n) n为1~8000字符之间 n字节
nchar(n) n为1~4000 Unicode字符之间 2 × n 字节
nvarchar(max) 最多为230 - 1 Unicode字符 2 × 字符数 + 2字节额外开销
text 最多为231 - 1 字符 每字符1字节+2字节额外开销
varchar(n) n为1 ~ 8000字符之间 每字符1字节 + 2字节额外开销
varchar(max) 最多为231 - 1 字符 每字符1字节 + 2字节额外开销
posted on 2017-05-08 17:24  风雨一肩挑  阅读(3145)  评论(0编辑  收藏  举报