各種システム開発・WEBコンテンツ制作・WEBデザイン・ホームページ制作・インフラ設計・構築・レンタルサーバー・ソフトウェア技術者のアウトソーシング事業を行っております。

10 月
31

照合順序について

技術スタッフ


勉強熱心なデータベース講座の受講生から

「照合順序って何ですか?」

「何を選んだら良いですか?」

と聞かれましたので、また、同じような疑問を持っている方も多いのでまとめます。

 

Linuxコマンドに慣れないうちは、phpmyadminを使ってデータべース、テーブルを作成する機会が多いと思いますが、照合順序欄を見ると

UTF-8だけでもこれだけあります。

ざくっと説明すると・・・

utf8_bin/UNICODE (多言語), バイナリ
utf8_croatian_ci/クロアチア語, 大文字小文字を区別しない
utf8_czech_ci/チェコ語, 大文字小文字を区別しない
utf8_danish_ci/デンマーク語, 大文字小文字を区別しない
utf8_esperanto_ci/エスペラント語, 大文字小文字を区別しない
utf8_estonian_ci/エストニア語, 大文字小文字を区別しない
utf8_general_ci/UNICODE (多言語), 大文字小文字を区別しない
utf8_general_mysql500_ci/UNICODE (多言語)
utf8_german2_ci/ドイツ語 (電話帳), 大文字小文字を区別しない
utf8_hungarian_ci/ハンガリー語, 大文字小文字を区別しない
utf8_icelandic_ci/アイスランド語, 大文字小文字を区別しない
utf8_latvian_ci/ラトビア語, 大文字小文字を区別しない
utf8_lithuanian_ci/リトアニア語, 大文字小文字を区別しない
utf8_persian_ci/ペルシア語, 大文字小文字を区別しない
utf8_polish_ci/ポーランド語, 大文字小文字を区別しない
utf8_roman_ci/西ヨーロッパ諸語, 大文字小文字を区別しない
utf8_romanian_ci/ルーマニア語, 大文字小文字を区別しない
utf8_sinhala_ci/不明, 大文字小文字を区別しない
utf8_slovak_ci/スロバキア語, 大文字小文字を区別しない
utf8_slovenian_ci/スロベニア語, 大文字小文字を区別しない
utf8_spanish2_ci/スペイン語 (伝統表記), 大文字小文字を区別しない
utf8_spanish_ci/スペイン語, 大文字小文字を区別しない
utf8_swedish_ci/スウェーデン語, 大文字小文字を区別しない
utf8_turkish_ci/トルコ語, 大文字小文字を区別しない
utf8_unicode_520_ci/UNICODE (多言語)
utf8_unicode_ci/UNICODE (多言語), 大文字小文字を区別しない
utf8_vietnamese_ci/ベトナム語, 大文字小文字を区別しない

となります。

日本で使用するなら

・utf8_general_ci/UNICODE (多言語), 大文字小文字を区別しない
・utf8_unicode_ci/UNICODE (多言語), 大文字小文字を区別しない

の二つですね。

この二つをより説明すると

general_ciは、A と a をWhere句等での検索条件で同じ文字として判断してくれます。
unicode_ciは、A と a とA と a(全角文字)も含めて同じ文字として判断してくれます。

全角半角自由に入力できるようなシステムであればunicode_ciで設定しても良いでしょうけど
パフォーマンスはgeneral_ciの方が優れています。
どういったシステムを作るかによって使い分けましょう。

また、似たような
・utf8_general_mysql500_ci/UNICODE (多言語)
がありますが、MySQL5.1.24以前の動作保証のために追加されたそうです。
余程のモノじゃない限り意識しなくていいかと思います。

学習を進める上で、スマホ文字を検索条件に指定するなどしない限りは、general_ciを選択で良いでしょう。


コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

*

月別アーカイブ

カテゴリ