首页 > 数据库 > MySQL > collation与Character set
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/ ,如需转载,请注明出处,否则将追究法律责任。