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字节额外开销
发布评论