SQL Sever 提供的字符串类型
字符串类型
字符串型数据由汉字,英文字母,数字和各种符号组成。目前字符的编码方式有两种:一种是非 Unicode 编码,另一种是 Uicode。非 Unicode 编码指的是不同国家或地区的编码长度不一样,比如英文字母的编码是一个字节,中文汉字编码是 2 字节。统一字符编码不管在哪个地区,哪种语言均采用双字节编码,即将世界上所有的字符统一进行编码。
非 Unicode 字符串类型
char[(n)]:固定长度,非 Unicode 字符串数据。n 用于定义字符串长度,取值范围为 1~8000.char 的 ISO 同义词为 character,n 个字节存储。
varchar[(n|max)]:可变长度,非 Unicode 字符串数据。n 用于定义字符串长度,取值范围为 1~8000.max 指示最大存储大小是 2 的 31 次方-1 字节(2GB)。varchar 的 ISO 同义词为 char varying 或 character varying,n+2 字节存储。
text:可储存 2 的 31 次方-1 个长度可变的非 Unicode 字符数据。
Unicode 字符串类型
nchar[(n)]:固定长度的 Uicode 字符串数据。n 用于定义字符串长度,取值范围为 1~4000.nchar 的 ISO 同义词为 national char 和 national character。2n 个字节存储。
nvarchar[(n|max)]:可变长度,Unicode 字符串数据。n 用于定义字符串长度,取值范围为 1~4000.max 指示最大存储大小是 2 的 31 次方-1 字节(2GB)。nvarchar 的 ISO 同义词为 national char varying 或 national character varying,2n+2 字节存储。
ntext:长度可变的 Uncode 字符串数据,字符串最大长度为 2 的 30 次方-1.ntext 的 ISO 同义词为 national text。所输入字符串长度的两倍储存(以字节为单位)。
如果没有在数据定义或变量声明语句中指定 n,则默认长度为 1.
对 char,varchar,nchar 和 nvarchar 的使用,可参考如下建议:
如果列数据项的大小一致,则建议使用 char 或 nchar。
如果列数据项的大小差异相当大,则建议使用 varchar 或 nvarchar。
如果列数据项大小相差很大,而且大小可能超过 8000 字节,则使用 varchar(max)或 nvarchar(max)。
如果希望支持多语言,则建议使用 nchar 或 nvarchar 类型,以最大限度地消除字符转换问题。
作者:Nicole 乔
链接:https://juejin.cn/post/7153461970363449381
来源:稀土掘金
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
版权声明: 本文为 InfoQ 作者【乔乔】的原创文章。
原文链接:【http://xie.infoq.cn/article/5e9c824ba5c43fad2855cdb6c】。未经作者许可,禁止转载。
评论