MySQL字符串类型有varchar和char类型,这二者区别不少人都知道,我常常搞混。。 因此这里记一下:mysql
varchar类型是可变长度; 适合存储长度不一致的数据类型;sql
char类型是固定长度;适合存储固定的长度类型,好比手机号,身份证号等;spa
固然还有text的字符串类型;字符串
那查询速度哪一个快呢? char > varchar > texttable
mysql默认是不区分大小不敏感的,例如:test
create table test(name varchar(10));select
insert into test values('MYSQL');数据类型
select * from test where name='mysql';这样小写查询仍是可以查到二进制
可是若是我须要大小写敏感呢? 那就在定义列的时候加上binary字段,BINARY关键字,它告诉MySQL,在它以后的字符串应该以二进制方式被处理。这时,当在字符串上执行比较运算符时,MySQL将紧紧记住字符串的大小写。CHAR和VARCHAR都适用此修饰符。数据
如今修改试试看,
ALTER TABLE data modify name VARCHAR(10) BINARY;
这个时候再去查,select * from test where name='mysql'; 就查不到了
PS:
TEXT和BLOB类型在分类和比较的方式上不一样,BLOB类型区分大小写,TEXT类型不区分大小写。MySQL手册用“TEXT类型是不区分大小写的BLOB类型”最准确地说明了这一点。