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類型」最準確地說明了這一點。