mysql查看版本和字符集_mysql 查看字符集和校对规则 命令

简介

每个字符集对应若干校对规则(collation),如果不指定,会有默认校对规则;

服务器有字符集、数据库有字符集、表有字符集、列有字符集,如果不指定,会继承父字符集,有了字符集如果不设置校对规则,就使用字符集的默认校对规则。在做比较式,最终起作用的是列的字符集和校对规则。

比如 table1.col1=table2.col2,首先会拿table1.col1的校对规则与table2.col2的校对规则,进行比较,如果校对规则不兼容,就会出现,类似

Error Code: 1267. Illegal mix of collations (utf8_general_ci,IMPLICIT) and (utf8_unicode_ci,IMPLICIT) for operation '=' 的错误

_ci  _cs   _bin解释

ci: case insensitive,大小写不敏感,不区分大小写比较

cs: case sensitive,大小写敏感,区分大小写比较

bin: binary,二进制,使用二进制比较

选择了,大小写不敏感的校对规则,比如utf8_general_ci,那么select * from table1 where name='a',那么会获取name=a或者A的数据,而不仅仅是a

命令

/*查看数据库当前的字符集和校对规则*/

show variables like '%character%';

show variables like '%collation%';

/*查看表的校对规则*/

show table status from db_name like '%table_name%' ;

/*查看列的校对规则*/

show full columns from table_name;

/*查看数据库支持的字符集和校对规则*/

show charset;

show collation;

由于多字节编码的缘故,字符个数不一定等于字节数,所以在查询时,注意区分

select length('你');/*结果是3,3个字节,数据库采用的utf8编码*/

select char_length('你');/*结果是1,1个字符*/

0818b9ca8b590ca3270a3433284dd417.png

0818b9ca8b590ca3270a3433284dd417.png

0818b9ca8b590ca3270a3433284dd417.png

0818b9ca8b590ca3270a3433284dd417.png

0818b9ca8b590ca3270a3433284dd417.png

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值