mysql默认字符核对_mysql 字符集,校验规则,以及默认编码

show character set; 显示字符集

create tab demo(name varchar(30) character set utf8

name2 varchar(30) character set gbk

);

show create table demo\g

inset into demo(name,name2)values("张","张");

select length(name),length(name2) from demo;

inset into demo(name,name2)values("a","a");

select length(name),length(name2) from demo;

...............................................

结论:处理单字节时候,gbk和utf8长短无差异,处理汉字则不一样。

select char_length(name),char_length(name) from demo

查询字符个数。

字符集校验规则。

show collation;通过这个命令可以看到个中字符集支持的校对规则。

一般以ci为结尾的为不区分大小写,general

create table demo2(name varchar(30) character set utf8

collate utf8_bin,

name2 varchar(30) character set utf8

collate utf8_general_ci);

insert into demo2(name ,name2) values('a','a'),('b','b'),('A','A');

select * from demo2;//看看区分大小写和不区分的区别。

select * from demo2 where name2='a';

select * from demo2 where name='a';//看看以上的结果区别。

看看校验级的排序。

insert into demo2(name ,name2) values('B','B');

select * from demo2 order by name;

字段指定了字符集,没有指定校对规则,那么他会采用默认的。

如果制定了校对规则,没有指定字符集,那么就采用校对规则所对应的字符集。

如果字段没有指定校对规则,也没有指定字符集,那么依据表的字符集与校对规则。

如果表也没有指定校对规则和字符集,那么依据库的字符集。

如果库也没有指定,mysql的默认字符集与校对规则。

select * from demo2 order by name2;

看看这两行代码 不同的校验规则,排序有什么不同。

create table demo3(name binary(3),name2 varchar(3)) default

character set=utf8;

insert into demo3(name,name2) values('a','a'); insert into demo3(name,name2) values('中','中'); insert into demo3(name,name2) values('中国','中国'); insert into demo3(name,name2) values('中国人','中国人');

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值