文章插图
【何为MySQL 字符集和校验规则( CHARSET & COLLATE)?】CHARSET :给定一系列字符并赋予对应的编码后,所有这些字符和编码对组成的集合就是字符集(Character Set) 。例如,给定字符列表为{‘A’,’B’}时,{‘A’=>0, ‘B’=>1}就是一个字符集;COLLATE 是指在同一字符集内字符之间的比较规则;确定比较规则后,才能在一个字符集上定义什么是等价的字符,以及字符之间的大小关系;
COLLATE 会影响到ORDER BY语句的顺序,会影响到WHERE条件中大于小于号筛选出来的结果,会影响DISTINCT、GROUP BY、HAVING语句的查询结果 。另外,MySQL建索引的时候,如果索引列是字符类型,也会影响索引创建,总之,凡是涉及到字符类型比较或排序的地方,都和COLLATE有关 。命名惯例:以对应的字符集名称开头;以_ci(表示大小写不敏感)、_cs(表示大小写敏感)或_bin(表示按编码值比较)结尾 。例如:在字符序“utf8_general_ci”下,字符“a”和“A”是等价的;
推荐阅读
- 3分钟短文 | MySQL存时间,到底该用timestamp还是datetime?
- MySQL 5.6--------SSL连接最佳实战
- MySQL的自增ID用完了,插入数据会出现什么问题?
- 百万级MySQL的数据量,该如何快速的完成数据迁移?
- MySQL存时间,到底该用timestamp还是datetime?
- 第16问:创建一张表时,MySQL 的统计表是如何变化的?
- MySQL8.0.17版本之后,integer类型字段将不再显示长度
- MySQL- 5.7数据库sys schema总结--性能优化必备
- 整理下公司内部MySQL使用规范,分享给大家
- 软件测试基础——Linux系统搭建MySQL数据库