1、字符串
字符数据类型是SQL Server 中最常用的数据类型之一,它可以用来存储各种字母、数字符号和特殊符号。在使用字符数据类型时,需要在其前后加上英文单引号或者双引号。
(1)char:当用char 数据类型存储数据时,每个字符和符号占用1 个字节的存储空间。
其定义形式为:char(n)
其中,n 表示所有字符所占的存储空间,n 的取值为1~8000。若不指定n 值,系统默认n 的值为1。若输入数据的字符串长度小于n,则系统自动在其后添加空格来填满设定好的空间。若输入的数据过长,将会截掉其超出部分。如果定义了一个char 数据类型,而且允许该列为空,则该字段被当作varchar 来处理。
(2)varchar:用varchar 数据类型可以存储长达8000 个字符的可变长度字符串,和char类型不同的是varchar 类型的存储空间根据输入数据的实际长度而变化。
例如,定义varchar(20),则它对应的字段最多可以存储20 个字节,如果数据的实际长度不到20 个字节,系统不会在其后添加空格,因此使用varchar 类型可以节省空间。
(3)text:用于存储大容量文本数据。当要存储的字符型数据非常巨大,char 和varchar已经不能满足其存储要求(大于8000 字节)时,应该选择text 数据类型。Text 数据类型的容量可以在1~(231–1)(2 147 483 647)个字节范围之内,但实际应用时要根据硬盘的存储空间而定。在定义text 数据类型时,不需要指定数据长度,SQL Server 会根据数据的长度自动为其分配空间。
2.Unicode字符串
Unicode(统一字符编码标准)字符集标准,用于支持国际上的非英语语种。每个Unicode字符用两个字节为一个存储单位,所以Unicode 数据类型所占用的存储空间是非Unicode数据类型的两倍。
(1)nchar:其定义形式为nchar(n),其中n 表示所有字符所占的存储空间,n 的取值为1~4000。
(2)nvarchar:其定义形式为nvarchar(n) ,其中n 表示所有字符所占的存储空间,n的取值为1~4000。
(3)ntext:用于存储大容量文本数据。其理论上的容量为230–1(1 073 741 823)个字节。
参考:零点起飞学sql。