我们在新建数据库时(Navicat)界面时会遇到这两个选项:

MySQL - 新建数据库的字符集与排序规则说明_icoMySQL - 新建数据库的字符集与排序规则说明_不区分大小写_02

 

 

1.字符集


一般选择utf8.


下面介绍一下utf8与utfmb4的区别:


utf8mb4兼容utf8,且比utf8能表示更多的字符。至于什么时候用,看你的做什么项目了,到​ 


当然utf8mb4也兼容这个区,126行以下就是utf8mb4扩充区,什么时候你需要存储那些字符,你才用utf8mb4,否则只是浪费空间。


 

2.排序说明

 


排序一般分为两种:utf_bin和utf_general_ci


 


bin 是二进制, a 和 A 会别区别对待.


 


例如你运行:


 


SELECT * FROM table WHERE txt = 'a'


 


那么在utf8_bin中你就找不到 txt = 'A' 的那一行, 而 utf8_general_ci 则可以.


 


utf8_general_ci 不区分大小写,这个你在注册用户名和邮箱的时候就要使用。


 


utf8_general_cs 区分大小写,如果用户名和邮箱用这个 就会照成不良后果


 


utf8_bin:字符串每个字符串用二进制数据编译存储。 区分大小写,而且可以存二进制的内容


 


utf8_unicode_ci和utf8_general_ci对中、英文来说没有实质的差别。


 


utf8_general_ci校对速度快,但准确度稍差。(准确度够用,一般建库选择这个)


 


utf8_unicode_ci准确度高,但校对速度稍慢。