字符数据类型也是SQL2005中最常用的数据类型之一,它可以用来存储各种字母、数字符号和特殊符号。在使用字符数据类型时,需要在其前后加上英文单引号或者双引号。SQL Server2005系统中,提供了Char、Varchar、Text 3种数据类型。

 

(1)char数据类型是:定长,最长可以容纳8000个字符,每个字符使用一个字节的存储空间。

(2)利用char数据类型来定义表列或者定义变量时,应该给定数据的最大长度。如果实际的字符长度短于给定的最大长度,则多余的字节会以空格填充。如果实际数据的字符长度超过了给定的最大长度,则超过的字符将会被截断。

 

下面我们来演示下(1)中的话

如下图,我定义一个变量@address 数据类型为char (8000)可以存储8000个字符,下面语句执行后没有问题

image

 

如下图,我定义char(8001)就报错了,超过了8000

image

 

下面我来演示(2)中的话

如下图,变量@address其数据类型为char(20)可以存储20个字符,但是我们在set @address='nihao'显然不足20个字符,因此在我们查询的时候就可以自动用空格来补齐了

image

 

如下图,变量@address我们定义了 char(10)可以用来存储10个字符,但是我们设置set @address='nihaonihaoaaaaaaa',很明显超过了10个字符,那么在查询这个变量的时候,就会进行了截断,没有显示aaaaaaa

image

 

varchar:变长,其它varchar数据类型的使用方式与char数据类型相似

如下图,变量@address 其数据类型是varchar(20)可以存储20个字符,set @address='nihaonihao' ,明显不足20个字符,查询变量后它没有自动添加空格,也就是varchar根据你填多少就是多少,如果实际字符长度超过给定长度,也会进行截断。

image