MySQL - 整理

lun*_*nar 4 mysql database

当我创建数据库时,我要求选择Default Collat​​e,当我创建一个表时,我要求选择Collat​​e.utf8_general_ci或...拉丁...?区分哪一个是正确的基础是什么?

0x4*_*672 12

归类确定字符的排序顺序,它是一种用于在字符集相比较的字符的一组规则.任何给定的字符集始终至少有一个排序规则.排序规则名称ci,csbin的结尾分别表示不区分大小写,区分大小写二进制.二进制排序规则utf8_bin通常也区分大小写,因为它根据字符串的数值进行二进制字符串比较.

这意味着如果您想要使用不区分大小写的选择查询,其中a和A没有区别,则应使用以ci结尾的排序规则.如果要创建区分大小写的查询,其中a和A不同,则应使用以cs或bin结尾的排序规则.

如果未选择,则应用标准级别.MySQL中有各种级别的排序规则,例如可以显示它们

mysql> show variables like '%collation%';
+----------------------+-------------------+
| Variable_name        | Value             |
+----------------------+-------------------+
| collation_connection | utf8_general_ci   |
| collation_database   | latin1_swedish_ci |
| collation_server     | latin1_swedish_ci |
+----------------------+-------------------+
Run Code Online (Sandbox Code Playgroud)