持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第2天,点击查看活动详情
字符串类型
字符串型数据由汉字,英文字母,数字和各种符号组成。目前字符的编码方式有两种:一种是非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类型,以最大限度地消除字符转换问题。