MySQLでサポートされているすべての文字セットを確認するには?SHOW CHARACTER SETの使い方
MySQLでサポートされているすべての文字セットを確認するクエリ
MySQLがサポートするすべての文字セットの一覧を取得するには、SHOW CHARACTER SETステートメントを使用します。このコマンドを実行すると、各文字セットの名前、説明、デフォルトの照合順序(collation)、そして1文字あたりの最大バイト数(Maxlen)が一覧形式で表示されます。
mysql> SHOW CHARACTER SET;
実行結果の例は以下のとおりです。
| Charset | Description | Default collation | Maxlen |
|---|---|---|---|
| big5 | Big5 繁体字中国語 | big5_chinese_ci | 2 |
| dec8 | DEC 西ヨーロッパ言語 | dec8_swedish_ci | 1 |
| cp850 | DOS 西ヨーロッパ言語 | cp850_general_ci | 1 |
| hp8 | HP 西ヨーロッパ言語 | hp8_english_ci | 1 |
| koi8r | KOI8-R ロシア語(Relcom) | koi8r_general_ci | 1 |
| latin1 | cp1252 西ヨーロッパ言語 | latin1_swedish_ci | 1 |
| latin2 | ISO 8859-2 中央ヨーロッパ言語 | latin2_general_ci | 1 |
| swe7 | 7ビット スウェーデン語 | swe7_swedish_ci | 1 |
| ascii | US ASCII | ascii_general_ci | 1 |
| ujis | EUC-JP 日本語 | ujis_japanese_ci | 3 |
| sjis | Shift-JIS 日本語 | sjis_japanese_ci | 2 |
| hebrew | ISO 8859-8 ヘブライ語 | hebrew_general_ci | 1 |
| tis620 | TIS620 タイ語 | tis620_thai_ci | 1 |
| euckr | EUC-KR 韓国語 | euckr_korean_ci | 2 |
| koi8u | KOI8-U ウクライナ語 | koi8u_general_ci | 1 |
| gb2312 | GB2312 簡体字中国語 | gb2312_chinese_ci | 2 |
| greek | ISO 8859-7 ギリシャ語 | greek_general_ci | 1 |
| cp1250 | Windows 中央ヨーロッパ言語 | cp1250_general_ci | 1 |
| gbk | GBK 簡体字中国語 | gbk_chinese_ci | 2 |
| latin5 | ISO 8859-9 トルコ語 | latin5_turkish_ci | 1 |
| armscii8 | ARMSCII-8 アルメニア語 | armscii8_general_ci | 1 |
| utf8 | UTF-8 Unicode | utf8_general_ci | 3 |
| ucs2 | UCS-2 Unicode | ucs2_general_ci | 2 |
| cp866 | DOS ロシア語 | cp866_general_ci | 1 |
| keybcs2 | DOS Kamenicky チェコ・スロバキア語 | keybcs2_general_ci | 1 |
| macce | Mac 中央ヨーロッパ言語 | macce_general_ci | 1 |
| macroman | Mac 西ヨーロッパ言語 | macroman_general_ci | 1 |
| cp852 | DOS 中央ヨーロッパ言語 | cp852_general_ci | 1 |
| latin7 | ISO 8859-13 バルト言語 | latin7_general_ci | 1 |
| utf8mb4 | UTF-8 Unicode(4バイト対応) | utf8mb4_general_ci | 4 |
| cp1251 | Windows キリル文字 | cp1251_general_ci | 1 |
| utf16 | UTF-16 Unicode | utf16_general_ci | 4 |
| cp1256 | Windows アラビア語 | cp1256_general_ci | 1 |
| cp1257 | Windows バルト言語 | cp1257_general_ci | 1 |
| utf32 | UTF-32 Unicode | utf32_general_ci | 4 |
| binary | バイナリ疑似文字セット | binary | 1 |
| geostd8 | GEOSTD8 ジョージア語 | geostd8_general_ci | 1 |
| cp932 | SJIS for Windows 日本語 | cp932_japanese_ci | 2 |
| eucjpms | UJIS for Windows 日本語 | eucjpms_japanese_ci | 3 |
上記のように、39件の文字セット情報が表示されます。
出力結果の各カラムの意味
- Charset: 文字セットの名前です。
- Description: 文字セットの概要説明です。
- Default collation: その文字セットでデフォルトとして使用される照合順序です。
- Maxlen: 1文字を格納するために必要な最大バイト数です。
条件を絞って文字セットを調べる方法
すべてではなく特定の文字セットだけを確認したい場合は、LIKE句やWHERE句を使って絞り込むことができます。
-- 「utf」で始まる文字セットのみ表示
mysql> SHOW CHARACTER SET LIKE 'utf%';
-- information_schemaから照合順序などの詳細情報も合わせて取得
mysql> SELECT * FROM INFORMATION_SCHEMA.CHARACTER_SETS;
補足:現代のシステムではutf8mb4が推奨
日本語を含むマルチバイト文字や絵文字(Emoji)などを扱う場合、現在では4バイト対応のutf8mb4を使用することが推奨されています。従来のutf8(utf8mb3)は最大3バイトまでしか扱えないため、一部のUnicode文字を保存できない点に注意が必要です。新規にデータベースやテーブルを作成する際は、文字セットにutf8mb4、照合順序にはutf8mb4_unicode_ciやutf8mb4_0900_ai_ciを選択しておくと安心です。
-
MySQLでデータベース内のテーブル数を表示するクエリの書き方
INFORMATION_SCHEMA.TABLESを使ってテーブル数を取得するここでは例として、「WEB」というデータベースを使用しているものとします。このデータベース内に存在するテーブルの総数を調べたい場合、MySQLではINFORMATION_SCHEMA.TABLESを利用するのが便利です。INFORMATION_SCHEMAは、MySQLサーバーが管理しているメタデータ(データベース名、テーブル名、カラム情報など)を格納する仮想データベースであり、これを参照することでスキーマに関する情報をSQLで簡単に取得できます。テーブル数を表示するクエリ「WEB」データベース内のテーブル数を表示す
-
MySQLがサポートするプラットフォーム一覧|対応OSとアーキテクチャを徹底解説
MySQLは非常に多くのプラットフォームに対応したデータベース管理系统であり、仮想環境へのデプロイにも柔軟に対応できます。本記事では、MySQLが公式にサポートしているオペレーティングシステムと、それぞれの対応アーキテクチャ(CPUアーキテクチャ)について詳しく解説します。 Oracle Linux / Red Hat Enterprise Linux / CentOS エンタープライズ用途で広く採用されているRHEL系ディストリビューションでは、以下のバージョンがサポート対象です。 Oracle Linux 8 / Red Hat Enterprise Linux 8 / CentOS