From:一条被猫抛弃的他乡流浪狗!

char类型的说明

CREATE TABLE [dbo].[CharTest](
    [Char] [char](10) NULL,
    [Varchar] [varchar](10) NULL,
    [Nchar] [nchar](10) NULL,
    [Nvarchar] [nvarchar](10) NULL
)

insert  into dbo.CharTest
        ( Char, Varchar, Nchar, Nvarchar )
values  ( 'aa', -- Char - char(10)
          'aa', -- Varchar - varchar(10)
          N'aa', -- Nchar - nchar(10)
          N'aa'  -- Nvarchar - nvarchar(10)
          )
          
--len(参数):可以获取参数的字符个数,与中英文无关
select LEN('aaa')
select LEN('中a国')
--datalength(参数):可以获取参数所占据的字节数(英文一个字节,中文两个字节)
select DATALENGTH('aaa')
select DATALENGTH('中国')
--char类型的特点:空间一旦分配,就不会再收缩回收,但是如果存储的内容走出指定的空间,那么就会报错--二进制截断的错误
--当你有内容长度变化不大的时候,使用char
select LEN(char) from chartest    --2
select DATALENGTH(char) from chartest    --10
--varchar:空间分配后,如果存储的内容小于指定的空间大小,那么多余的空间会自动回收,但是如果存储的内容走出指定的空间,那么就会报错--二进制截断的错误  如果内容的长度波动比较大,才会考虑使用varchar
select LEN(varchar) from chartest        --2
select DATALENGTH(varchar) from chartest    --2
--nchar:  N:Unicode--unique code:唯一编码。每一种类型的字符都占据两个字节。 有中文的时候才会考虑使用unicode
select LEN(nchar) from chartest    --2
select DATALENGTH(nchar) from chartest    --20
--nvarchar:
select LEN(nvarchar) from chartest    --2
select DATALENGTH(nvarchar) from chartest    --4
posted @ 2015-05-09 14:32  ICE_Inspire  阅读(491)  评论(0编辑  收藏  举报