你的位置:首页 > 数据库

[数据库]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类型的特点:空间一旦分配,就不会再收缩回收,但是如果存储的内容走出指定的空间,那么就会报错--二进制截断的错误--当你有内容长度变化不大的时候,使用charselect LEN(char) from chartest  --2select DATALENGTH(char) from chartest  --10--varchar:空间分配后,如果存储的内容小于指定的空间大小,那么多余的空间会自动回收,但是如果存储的内容走出指定的空间,那么就会报错--二进制截断的错误 如果内容的长度波动比较大,才会考虑使用varcharselect LEN(varchar) from chartest    --2select DATALENGTH(varchar) from chartest  --2--nchar: N:Unicode--unique code:唯一编码。每一种类型的字符都占据两个字节。 有中文的时候才会考虑使用unicodeselect LEN(nchar) from chartest  --2select DATALENGTH(nchar) from chartest  --20--nvarchar:select LEN(nvarchar) from chartest  --2select DATALENGTH(nvarchar) from chartest  --4