char与varchar的区别

学习时候任何不注意的细节都可能会造成写程序时候的很大的障碍,如果总是急于求成而忽视细节,最终总会在实践中补上自己忽略的那一刻。今天写一个登陆界面,验证密码的正确性时调试了很多次始终不正确,没办法把输入的密码和数据库的密码都输出来,看起来一样的字符串在用Compares()函数比较时始终得到的是false,后来突然想起来两个字符串虽然看起来一样,但是长度可能不一样,把长度输出之后发现果然不一样。

两个字符串的长度不一样,怎么办呢?想办法把两个字符串长度变成一样的,然而密码的长度是不能设置为一个固定长度的。于是varchar就起到作用了,把数据库的字符串变为变长的,这样在比较的时候就不会遇到长度不一样的问题了。

一下是char和varchar的区别,摘自百度百科:

varchar 与char 区别

VARCHAR型和CHAR型数据的这个差别是细微的,但是非常重要。他们都是用来储存 字符串长度小于255的字符。
假如你向一个长度为四十个 字符的VARCHAR型字段中输入数据BIll GAtES。当你以后从这个字段中取出此数据时,你取出的数据其长度为十个 字符——字符串Bill Gates的长度。 现在假如你把 字符串输入一个长度为四十个字符的CHAR型字段中,那么当你取出数据时,所取出的数据长度将是四十个字符。字符串的后面会被附加多余的空格。
当你建立自己的站点时,你会发现使用VARCHAR型字段要比CHAR型字段方便的多。使用VARCHAR型字段时,你不需要为剪掉你数据中多余的空格而操心。
VARCHAR型字段的另一个突出的好处是它可以比CHAR型字段占用更少的内存和 硬盘空间。当你的数据库很大时,这种 内存和磁盘空间的节省会变得非常重要.
虽然VARCHAR使用起来较为灵活,但是从整个系统的性能角度来说,CHAR 数据类型的处理速度更快,有时甚至可以超出VARCHAR处理速度的50%。因此,用户在设计数据库时应当综合考虑各方面的因素,以求达到最佳的平衡。

varchar


  1、使用比固定长度类型(char)占用更少存储空间(除了使用ROW_FORMAT=FIXED创建的 MyISAM表)
  2、使用额外的1-2字节来存储值长度,列长度<=255使用1字节保存,其它情况使用2字节保存。例如varchar(10)会占用11字节存储空间,varchar(500)会占用502字节存储空间
  3、节约空间,所以性能会有帮助。在更新的时候会产生额外的工作。
  4、5.0以上版本,取值或设置值都会保存字符串末尾的空格,4.1之前的版本都会把字符串末尾的空格删除掉
  5、最大长度远大于平均长度,很少发生更新的时候适合使用varchar,因为碎片更少了

char


  1、使用固定长度
  2、保存的时候会去掉字符串末尾的空格
  3、适合保存 MD5后的 哈希值或经常改变的值,因为固定的行不容易产生碎片

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值