背景 学过MySQL的同学都知道MySQL中varchar和char是两种最主要的字符串类型,varchar是变长的类型,而char是固定长度.那关于如何选择类型就成为令人头疼的事,很多初学者为了保证业务兼容性强,存储字符串类型一律都是varchar类型.这是不妥的,需要根据varchar和char的特性来进行选择. varchar和char数据类型的区别 varchar类型用于存储可变长的字符串,是比较常见常用的字符串数据类型,在存储的字符串是变长时,varchar更加节约空间.由于varch…
MySQL中varchar与char区别(转) MySQL中varchar最大长度是多少? 一. varchar存储规则: 4.0版本以下,varchar(20),指的是20字节,如果存放UTF8汉字时,只能存6个(每个汉字3字节) 5.0版本以上,varchar(20),指的是20字符,无论存放的是数字.字母还是UTF8汉字(每个汉字3字节),都可以存放20个,最大大小是65532字节 Mysql4中最大也不过是20个字节,但是Mysql5根据编码不同,存储大小也不同.  二. varchar…
一.varchar和char的区别: 区别一:定长和变长 char表示定长.长度固定,varchanr表示变长,即长度可变. 即char类型是规定多少字长则必须存储多少字长,超过的长度的字段则只能截取出对应的长度进行存储,相对于要求字长长度不够的字段则用空格补齐. 而varchar类型则是只要在规定字长之内,有多少存多少,无需补齐:超出的部分和char一样,舍去即可.(由perfix来实现) 区别二:存储容量不同 对于char类型来说,最多只能存放的字符个数为255,和编码无关. varchar…
一.字符与字节与编码关系 ASCII码中,一个英文字母(不分大小写)占一个字节的空间,一个中文汉字占两个字节的空间.一个二进制数字序列,在计算机中作为一个数字单元,一般为8位二进制数,换算为十进制.最小值0,最大值255. UTF-8编码中,一个英文字符等于一个字节,一个中文(含繁体)等于三个字节. Unicode编码中,一个英文等于两个字节,一个中文(含繁体)等于两个字节. 二.Varchar与char区别 char固定长度的类型:char(M)类型的数据列里,每个值都占用M个字节,如果某个长…
由于mysql一直是我的弱项(其实各方面我都是很弱的),所以最近在看msyql,正好看到varchar和char区别,所以整理一下,便于以后遗忘. 0.0图片已经说明一切,但是系统说我字数不够,我真能在说两句,首先,非常感谢(http://www.jcodecraeer.com/a/shujuku/2012/1014/435.html)让我了解varchar和char的区别,然后,我身为一名程序员,不怎么会用思维导图,不足之处请见谅.…
 varchar与char的区别: 1).varchar与char的区别char是一种固定长度的类型,varchar则是一种可变长度的类型 尽可能的使用 varchar 代替 char ,因为首先变长字段存储空间小,可以节省存储空间, 其次对于查询来说,在一个相对较小的字段内搜索效率显然要高些.   varchar(50)代表的含义: varchar(50)中50的涵义最多存放50个字符,varchar(50)和(200)存储hello所占空间一样,但后者在排序时会消耗更多内存,因为order…
区别 CHAR与VARCHAR类型类似,但它们保存和检索的方式不同.CHAR有固定的长度,而VARCHAR属于可变长的字符类型.它们最大长度和是否尾部空格被保留等方面也不同.在存储和检索过程中不进行大小写转换. 下面的表格显示了将各种字符串值保存到CHAR(4)和VARCHAR(4)列后的结果,说明了CHAR和VARCHAR之间的差别: 值 CHAR(4) 存储需求 VARCHAR(4) 存储需求 '' ' ' 4个字节 '' 1个字节 'ab' 'ab ' 4个字节 'ab' 3个字节 'ab…
mysql建表长度的限制 在mysql建表时,出现以下报错信息: 错误一:行大小过大,所使用的表这种类型的最大的行大小,不算BLOB类型,是65535.(这是我翻译的)    原因是MySQL在建表的时候有个限制:MySQL要求一个行的定义长度不能超过65535.具体的原因可以看: http://dev.mysql.com/doc/refman/5.1/en/silent-column-changes.html 单个字段如果大于65535,则转换为TEXT. 单行最大限制为65535,这里不包括…
1.mysql varchar类型变化:mysql 5.0.3 之前: 0--255字节 varchar(20)中的20表示字节数,如果存放urf8编码的话只能放6个汉字. MySQL 5.0.3 之后: 0--65535字节 varchar(20)表示字符数,不管什么编码,既汉字也能放20个.但最多占65532字节(两个字节存放长度,小于255字节用1个字节存放长度) 1.存储限制: varchar 字段是将实际内容单独存储在聚簇索引之外,内容开头用1到2个字节表示实际长度(长度超过255时需…
(1.1)mysql 选择合适的数据类型 1.char与varchar [1.1]char 在内容未满定义长度时,做空格填充,且字符串末尾空格会被截断:超出定义长度也会被截断.  如:char(4)    'abcde' => 'abcd' [1.2]varchar 在内容未满定义长度时,内容是多少就占多少,以\0 为系统自动加上的默认结束符.额外多占一个字节. 2.浮点与定点(float/decimal) [2.1]浮点:当插入数值超过浮点定义时设置的精度时,会四舍五入截断. [2.2]定点:…