[MSSQL]MSSQL 基础之善用Char类型

本文探讨了在MSSQL中Char类型的重要性和使用技巧,对比了Char、VarChar和NVarChar的区别。Char类型因其固定长度和较高的索引效率,适合作为编码字段,如性别或国家字典表的存储。文章通过示例展示了Char类型的用法,并提醒在存储固定长度编码时,前置的0不可省略。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

转自:http://www.flybi.net/blog/lovezsr/2159
引言

今天为什么要开题来说Char类型呢?在近几天的社区问题中发现,有些朋友对char、varchar、nvarchar这几种字符类型的特性还不是很清楚。以至在实际的使用中,不可避免的产生了一些问题。

类型介绍

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是不可省略的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值