[MSSQL]MSSQL 基础之善用Char类型
今天为什么要开题来说Char类型呢?在近几天的社区问题中发现,有些朋友对char、varchar、nvarchar这几种字符类型的特性还不是很清楚。以至在实际的使用中Mssq类型转换函数,不可避免的
引言 今天为什么要开题来说Char类型呢?在近几天的社区问题中发现,有些朋友对char、varchar、nvarchar这几种字符类型的特性还不是很清楚。以至在实际的使用中Mssq类型转换函数,不可避免的产生了一些问题。 类型介绍 char类型 char(n)类型,长度是固定,索引效率高,n介于1-8000之间的数据。假设为char(10)的变量存储一个”abc”字符串,那么实际存储为abc+7个空字符。所以在使用时如果不希望有空字符可以使用Rtrim去掉空字符。 declare @content char(10) select 1, @content,len(@content) set @content = ‘abc’ select 2, @content,len(@content) select 3, @content + ‘_end’ select 4, rtrim(@content)+’_end’ varchar类型 varchar(n)类型,可变长度,所谓可变长并不是真的可以任意变长,而是相对于char类型的固定占位而言,最大长度不能超出定义长度。n介于1-8000之间的数值。注意标红部分。 declare @content varchar(10) select 1, @content,len(@content) set @content = ‘abc’ select 2, @content,len(@content) select 3, @content + ‘_end’ select 4, rtrim(@content)+’_end’ set @content = N’6?’ select 5, @content nvarchar类型 nvarchar(n)类型,可变长Unicode类型。一个字符使用两个字节存储,所以能够存储西方和特殊字符而不致产生乱码。n介于1-4000之间的数值。注意标红部分。 declare @content nvarchar(10) select 1, @content,len(@content) set @content = ‘abc’ select 2, @content,len(@content) select 3, @content + ‘_end’ select 4, rtrim(@content)+’_end’ set @content = N’6?’ select 5, @content 扩展 写了这么多都还没有点到题目,是不是楼主是个标题党哇。呵呵,各位看官居莫怪,其实如何善用char类型已经在类型介绍中说过了。既然char类型长度固定,而且索引效率高,那么作为编码字段还是非常有用的,强调一点是固定长度编码。如:性别字典表,char(2) 01 表示男 02 表示女,如国家字典,char(4) 0001表示中国,0002表示韩国。千万注意一定不要存储成1,2,前置的0是不可省略的。 (编辑:威海站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |