🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
## mysql修改字符集 #### 修改库的字符集 ``` ALTER DATABASE 数据库名 DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; ``` #### 修改表的字符集 ``` ALTER TABLE 表名 CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; ``` #### 修改表的默认字符集 ``` ALTER TABLE 表名 DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; ``` #### 修改表中某一列的字符集 ``` ALTER TABLE table_name CHANGE column_name column_name varchar(200) character SET utf8mb4 COLLATE utf8mb4_general_ci; ``` 示例: ``` ALTER TABLE user CHANGE username username varchar(30) CHARACTER SET utf8 COLLATE utf8_general_ci; ``` #### 小知识: `utf8mb4对应的排序字符集有utf8mb4\_unicode\_ci、utf8mb4\_general\_ci. utf8mb4\_unicode\_ci和utf8mb4\_general\_ci的对比: * 准确性: * utf8mb4\_unicode\_ci是基于标准的Unicode来排序和比较,能够在各种语言之间精确排序 * utf8mb4\_general\_ci没有实现Unicode排序规则,在遇到某些特殊语言或者字符集,排序结果可能不一致。 * 但是,在绝大多数情况下,这些特殊字符的顺序并不需要那么精确。 * 性能 * utf8mb4\_general\_ci在比较和排序的时候更快 * utf8mb4\_unicode\_ci在特殊情况下,Unicode排序规则为了能够处理特殊字符的情况,实现了略微复杂的排序算法。 * 但是在绝大多数情况下发,不会发生此类复杂比较。相比选择哪一种collation,使用者更应该关心字符集与排序规则在db里需要统一。` 来自:[http://www.cnblogs.com/amyzhu/](http://www.cnblogs.com/amyzhu/) #### 建议 > 推荐使用 utf8mb4 utf8mb4_unicode_ci