使用字符集 UTF-8 创建 MySQL 数据库

use*_*998 194 mysql collation utf-8

我是 MySQL 的新手,我想知道:

如何utf-8像在 navicat 中那样创建带有字符集的数据库?

create mydatabase;
Run Code Online (Sandbox Code Playgroud)

...似乎正在使用某种默认字符集。

she*_*bye 332

更新于2019年10月29日
作为在评论中提到由@Manuel乔丹,utf8mb4_0900_ai_ci是新的默认MySQL 8.0,所以下面是现在又一个更好的做法:

CREATE DATABASE mydatabase CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci;
Run Code Online (Sandbox Code Playgroud)

2019-10-29 之前的回答
注意:以下现在被认为是更好的做法(参见bikeman868 的回答):

CREATE DATABASE mydatabase CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
Run Code Online (Sandbox Code Playgroud)

原答案:

尝试这个:

CREATE DATABASE mydatabase CHARACTER SET utf8 COLLATE utf8_general_ci;
Run Code Online (Sandbox Code Playgroud)

有关更多信息,请参阅MySQL 参考手册中的数据库字符集和排序规则

  • MySQL 的 `utf8mb4` 就是我们其他人所说的 `utf8`。那么你问 MySQL 的 `utf8` 是什么?它是 utf-8 的有限版本,仅适用于字符的子集,但无法用于表情符号之类的东西。后来他们添加了 `utf8mb4` 这是正确的实现,但是 MySQL 必须保持向后兼容它的旧错误,这就是为什么添加新编码而不是修复旧编码的原因。所有新数据库都应该使用 `utf8mb4`。 (4认同)

小智 76

你应该使用:

CREATE DATABASE mydb CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
Run Code Online (Sandbox Code Playgroud)

请注意,这utf8_general_ci不再是推荐的最佳实践。见相关问答:

Stack Overflow 上的utf8_general_ci 和 utf8_unicode_ci 有什么区别

  • 考虑更新您的答案以提及“utf8mb4_0900_ai_ci”。似乎比“utf8mb4_unicode_ci”更好 (4认同)