ITPub博客

首页 > 数据库 > MySQL > collation与Character set

collation与Character set

MySQL 作者:panpong 时间:2017-01-11 23:10:11 0 删除 编辑

collation与Character set

mysql的collation大致的意思就是字符序。首先字符本来是不分大小的,那么对字符的>, = , < 操作就需要有个字符序的规则。collation做的就是这个事情,你可以对表进行字符序的设置,也可以单独对某个字段进行字符序的设置。

mysql的字符序遵从命名惯例。以_ci(表示大小写不敏感),以_cs(表示大小写敏感),以_bin(表示用编码值进行比较)。(ci 是 case insensitive 的缩写, cs 是 case sensitive 的缩写)。

 

collation 名字的规则可以归纳为这两类:

1. <character set>_<language/other>_<ci/cs>

2. <character set>_bin

 

查询character set 与 collation的对应关系:

mysql> show collation;

 

1.当表的 character set 是 latin1 时,若字段类型为 nvarchar, 则字段的字符集自动变为 utf8。可见 database character set, table character set, field character set 可逐级覆盖。

2.在 ci 的 collation 下,如何在比对时区分大小写

方法一:

mysql> select * from pet where binary name = 'Histler';

方法二

mysql> select * from pet where name = binary 'Histler';

推荐使用方法二,这样可以保证当前字段的索引依然有效, 而方法一会使索引失效。

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/16976507/viewspace-2132287/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
数据库工程师,熟悉Oracle,Postgresql,MySQL等主流关系型数据库运维,调优,一直活跃在运维一线。了解Python,Django,简单自动化运维系统开发。

注册时间:2009-03-06

  • 博文量
    142
  • 访问量
    392333