1. utf8与utf8mb4
utf8 字符集表示一个字符需要使用1~4个字节,但是我们常用的一些字符使用1~3个字节就可以表示
了。而字符集表示一个字符所用的最大字节长度,在某些方面会影响系统的存储和性能,所以设计
MySQL的设计者偷偷的定义了两个概念:
utf8mb3 :阉割过的 utf8 字符集,只使用1~3个字节表示字符。
utf8mb4 :正宗的 utf8 字符集,使用1~4个字节表示字符。
2.比较规则
查看规则命令
SHOW COLLATION LIKE
_ai 不区分重音
_as 区分重音
_ci 不区分大小写
_cs 区分大小写
_bin 以二进制方式比较
3.请求到响应过程中字符集的变化
1.character_set_client
服务器解码请求时使用的字符集
2.character_set_connection
服务器处理请求时会把请求字符串从
character_set_client 转为 character_set_connection
3.character_set_results
服务器向客户端返回数据时使用的字符集
结论
1.使用操作系统的字符集编码请求字符串和character_set_client配置一样
2.使用操作系统的字符集编码请求字符串和character_set_results配置一样
3.character_set_connection和具体列使用的字符集一样
4.SQL大小写规范
MySQL在Linux下数据库名、表名、列名、别名大小写规则是这样的: 1、数据库名、表名、表的别名、变量名是严格区分大小写的; 2、关键字、函数名称在 SQL 中不区分大小写; 3、列名(或字段名)与列的别名(或字段别名)在所有的情况下均是忽略大小写的;