char,varchar的问题 char(N)是定长的,如果存储的字符不到N个,就用空格来填充varchar(N),是变长的,不到N位,不用空格填充. 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 char的效率要高很多一般如果你要存储的数据基本上一样长的话,尽量使用CHAR char(N)是定长的,如果存储的字符不到N个,就用空格来填充.varchar(N),是变长的,他的长度为数据的实际存储长度,不会浪费磁盘空间,但他的长度要设的足够长,否则当实际的数据长度超过他的定义长度时,那么此数据将不会被完整的存储到数据库.测试:declare @stra varchar(10)declare @strb varchar(2)select @stra='aaaaaaa',@strb='aaaaaaa'select @stra,@strb结果:aaaaaaa aa varchar(10)的效率高,因为在执行数据的查询时,磁头读取磁盘时不会读取到空白区(如果是char,那么就会有空余空间)。而且varchar()可以提供数据长度的兼容性。 从存储效率、检索效率上来说CHAR比较好!但是VARCHAR比较灵活啊,不会浪费不必要的空间! varchar(20)和varchar(8000)除了最大字符数不同之外,在存储空间、效率上有什么区别? 在存储空间上,VARCHAR要比CHAR灵活,同时能够节约空间。在效率上,char要比varchar快 新手问题,添加列 在select查询中模式名+表名+“*”可以用吗? 求高手解决ASP+MSSQL中的高效查询代码.付费. 关于SQL数据备份问题 怎样调用用户自定义函数 ntext和nvarchar 谁占用空间大? 请教一直困扰的问题,三张表,A Left outer joinB ……left outer join C…… pengdali(大力 V3.0)进来拿分 有关快照复制的问题 存储过程的问题. 进入企业管理器为什么不要密码? 请问怎么只显示日期字段值的年月?
一般如果你要存储的数据基本上一样长的话,尽量使用CHAR
varchar(N),是变长的,他的长度为数据的实际存储长度,不会浪费磁盘空间,但他的长度要设的足够长,否则当实际的数据长度超过他的定义长度时,那么此数据将不会被完整的存储到数据库.
测试:
declare @stra varchar(10)
declare @strb varchar(2)
select @stra='aaaaaaa',@strb='aaaaaaa'
select @stra,@strb
结果:
aaaaaaa aa
但是VARCHAR比较灵活啊,不会浪费不必要的空间!