MySQL
 Computer >> コンピューター >  >> プログラミング >> MySQL

MySQLでサポートされているすべての文字セットを確認するには?SHOW CHARACTER SETの使い方

MySQLでサポートされているすべての文字セットを確認するクエリ

MySQLがサポートするすべての文字セットの一覧を取得するには、SHOW CHARACTER SETステートメントを使用します。このコマンドを実行すると、各文字セットの名前、説明、デフォルトの照合順序(collation)、そして1文字あたりの最大バイト数(Maxlen)が一覧形式で表示されます。

mysql> SHOW CHARACTER SET;

実行結果の例は以下のとおりです。

CharsetDescriptionDefault collationMaxlen
big5Big5 繁体字中国語big5_chinese_ci2
dec8DEC 西ヨーロッパ言語dec8_swedish_ci1
cp850DOS 西ヨーロッパ言語cp850_general_ci1
hp8HP 西ヨーロッパ言語hp8_english_ci1
koi8rKOI8-R ロシア語(Relcom)koi8r_general_ci1
latin1cp1252 西ヨーロッパ言語latin1_swedish_ci1
latin2ISO 8859-2 中央ヨーロッパ言語latin2_general_ci1
swe77ビット スウェーデン語swe7_swedish_ci1
asciiUS ASCIIascii_general_ci1
ujisEUC-JP 日本語ujis_japanese_ci3
sjisShift-JIS 日本語sjis_japanese_ci2
hebrewISO 8859-8 ヘブライ語hebrew_general_ci1
tis620TIS620 タイ語tis620_thai_ci1
euckrEUC-KR 韓国語euckr_korean_ci2
koi8uKOI8-U ウクライナ語koi8u_general_ci1
gb2312GB2312 簡体字中国語gb2312_chinese_ci2
greekISO 8859-7 ギリシャ語greek_general_ci1
cp1250Windows 中央ヨーロッパ言語cp1250_general_ci1
gbkGBK 簡体字中国語gbk_chinese_ci2
latin5ISO 8859-9 トルコ語latin5_turkish_ci1
armscii8ARMSCII-8 アルメニア語armscii8_general_ci1
utf8UTF-8 Unicodeutf8_general_ci3
ucs2UCS-2 Unicodeucs2_general_ci2
cp866DOS ロシア語cp866_general_ci1
keybcs2DOS Kamenicky チェコ・スロバキア語keybcs2_general_ci1
macceMac 中央ヨーロッパ言語macce_general_ci1
macromanMac 西ヨーロッパ言語macroman_general_ci1
cp852DOS 中央ヨーロッパ言語cp852_general_ci1
latin7ISO 8859-13 バルト言語latin7_general_ci1
utf8mb4UTF-8 Unicode(4バイト対応)utf8mb4_general_ci4
cp1251Windows キリル文字cp1251_general_ci1
utf16UTF-16 Unicodeutf16_general_ci4
cp1256Windows アラビア語cp1256_general_ci1
cp1257Windows バルト言語cp1257_general_ci1
utf32UTF-32 Unicodeutf32_general_ci4
binaryバイナリ疑似文字セットbinary1
geostd8GEOSTD8 ジョージア語geostd8_general_ci1
cp932SJIS for Windows 日本語cp932_japanese_ci2
eucjpmsUJIS for Windows 日本語eucjpms_japanese_ci3

上記のように、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を選択しておくと安心です。

  1. MySQLでデータベース内のテーブル数を表示するクエリの書き方

    INFORMATION_SCHEMA.TABLESを使ってテーブル数を取得するここでは例として、「WEB」というデータベースを使用しているものとします。このデータベース内に存在するテーブルの総数を調べたい場合、MySQLではINFORMATION_SCHEMA.TABLESを利用するのが便利です。INFORMATION_SCHEMAは、MySQLサーバーが管理しているメタデータ(データベース名、テーブル名、カラム情報など)を格納する仮想データベースであり、これを参照することでスキーマに関する情報をSQLで簡単に取得できます。テーブル数を表示するクエリ「WEB」データベース内のテーブル数を表示す

  2. MySQLがサポートするプラットフォーム一覧|対応OSとアーキテクチャを徹底解説

    MySQLは非常に多くのプラットフォームに対応したデータベース管理系统であり、仮想環境へのデプロイにも柔軟に対応できます。本記事では、MySQLが公式にサポートしているオペレーティングシステムと、それぞれの対応アーキテクチャ(CPUアーキテクチャ)について詳しく解説します。 Oracle Linux / Red Hat Enterprise Linux / CentOS エンタープライズ用途で広く採用されているRHEL系ディストリビューションでは、以下のバージョンがサポート対象です。 Oracle Linux 8 / Red Hat Enterprise Linux 8 / CentOS