mysql char(4)指的是四个字符,仍是4个字节?

int类型不管你怎么设置,怎么保存。当你写入数据的时候仍是能够写入11位整数。我已经测试过了,在设计数据表的时候 id字段类型为 int(2) 按理只能输入2个数值,可是当我输入第11个数字的时候是没有报错的,直到输入12个数字的时候就报错了。html

mysql 默认 int 是11位。系统早已经设定好了。看这篇文章 http://blog.sina.com.cn/s/blog_855d75160102v2hl.html 文中提到:“ 注意一点的,Char,Varchar不像数值类型,有系统默认长度,因此必须在括号里定义长度,能够有默认值”mysql

mysql是按字符个数计算的,不是按字节计算的。这个要记好。web

字符串的长度:
长度的单位为字符。一个多字节字符算做一个单字符。 sql

全文:http://wenda.tianya.cn/question/13b15725691c6c74svg

我使用 Navicat for MySQL 测试过了,若是char(10) 表示该字段能够存储10个汉字,或者10个数字,或者10个英文字母。都是同样对代的。若是该字段数值超出10位字符,(一个多字节的汉字也看成一个字符处理)也就是输入11位将会报错。varchar(10)也是如此。测试

特殊字符,例如星号,QQ特殊字符 没有测试,应该也是同等对代的。其实我以为,使用Navicat for mysql设置数据表的时候,字段长度软件会自动设置默认值。url

附:
mysql中char(1)括号中的1表示字节长度仍是字符长度设计

http://zhidao.baidu.com/link?url=blIta2qALaajc3Pk_kvybGgIJCVS1iaooENWH-MJ8BP5Vf0KVYkMqWgT9SjDY6cKMAcRzGu1mSV-8lDONNijXYzVwhyhYtsYwl8FMUbSpfOxml

MySQL的varchar定义长度究竟是字节仍是字符htm

http://ju.outofmemory.cn/entry/43176 //把文中的“最大长度”替换为“最大字节”会更容易理解。