Mysql 字符串类型及大小写

MySQL字符串类型有varchar和char类型,这两者区别很多人都知道,我经常搞混。。   所以这里记一下:

varchar类型是可变长度; 适合存储长度不一致的数据类型;

char类型是固定长度;适合存储固定的长度类型,比如手机号,身份证号等;

当然还有text的字符串类型;

那查询速度哪个快呢?   char > varchar > text

 

mysql默认是不区分大小不敏感的,例如:

create table test(name varchar(10));

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类型”最准确地说明了这一点。

posted on 2018-04-08 11:31  qiezijiajia 阅读( ...) 评论( ...) 编辑 收藏

转载于:https://www.cnblogs.com/dpains/p/8743972.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值