文字セットUTF-8でMySQLデータベースを作成します


142

私はMySQLが初めてで、知りたいのですが:

utf-8navicatで行ったように、文字セットでデータベースを作成するにはどうすればよいですか?

create mydatabase;

...何らかの種類のデフォルト文字セットを使用しているようです。

回答:


232

注:以下は、より良い方法と見なされています(bikeman868の回答を参照)。

CREATE DATABASE mydatabase CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

元の回答:

これを試して:

CREATE DATABASE mydatabase CHARACTER SET utf8 COLLATE utf8_general_ci;

詳細については、MySQLリファレンスマニュアルのデータベースの文字セットと照合を参照してください。


1
MySQLのutf8mb4ことを、私たちは他の人たちと呼んでいますutf8。それでは、MySQLに何utf8を求めますか?これはutf-8の限定バージョンであり、文字のサブセットに対してのみ機能しますが、絵文字などには失敗します。後で彼らutf8mb4は正しい実装を追加しましたが、MySQLは古い間違いとの後方互換性を維持する必要があるため、古いエンコーディングを修正する代わりに新しいエンコーディングを追加しました。新しいデータベースはすべてを使用する必要がありますutf8mb4
スティンデウィット

あなたがウサギの穴を下に移動したい場合は: COLLATE utf8mb4_unicode_520_ciまたはutf8mb4_0900_ai_ciまたは、例えば、特定でもロケール: utf8mb4_vi_0900_ai_ci。MariaDB 10.2.2+には、「nopad」照合がありますutf8mb4_unicode_520_nopad_cidev.mysql.com/doc/refman/8.0/en/charset-unicode-sets.html
フランクフォルテ

@shellbyeについて言及するために回答を更新することを検討してくださいutf8mb4_0900_ai_ci。思われるよりも優れているutf8mb4_unicode_ci
マヌエル・ジョーダン

63

以下を使用する必要があります。

CREATE DATABASE mydb CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

utf8_general_ciベストプラクティスとして推奨されなくなったことに注意してください。関連するQ&Aを参照してください。

スタックオーバーフローでのutf8_general_ciとutf8_unicode_ciの違いは何ですか


についての言及を行うには、回答を更新することを検討してくださいutf8mb4_0900_ai_ci。思われるよりも優れているutf8mb4_unicode_ci
マヌエル・ジョーダン
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.