Documentation Home
MySQL 5.6 リファレンスマニュアル
Download this Manual
PDF (US Ltr) - 26.8Mb
PDF (A4) - 26.9Mb
HTML Download (TGZ) - 7.1Mb
HTML Download (Zip) - 7.2Mb


MySQL 5.6 リファレンスマニュアル  /  ...  /  一般の文字セットおよび照合順序

10.1.1 一般の文字セットおよび照合順序

文字セットとは、記号とエンコーディングのセットです。照合順序とは、文字セット内の文字を比較するためのルールを集めたものです。架空の文字セットを例にして、文字セットと照合順序の違いを見てみましょう。

ABabの 4 つのアルファベットがあるとします。それぞれの文字に A = 0、B = 1、a = 2、b = 3 の数字を割り当てます。文字Aは記号で、数字 0 はAに対するエンコーディングであり、4 つの文字とそのエンコーディングの組み合わせが文字セットになります。

ABの 2 つの文字列値を比較するとします。これを行うには、Aの 0、Bの 1 というエンコーディングを調べる方法がもっとも簡単です。0 は 1 より小さいので、ABより小さいと見なします。今ここで行なったのは、文字セットに対する照合順序の適用です。照合順序はルールの集まりであり、この場合、ルールはエンコーディングの比較の 1 つだけになります。これは可能な照合順序のうちでもっとも単純なものであり、バイナリ照合順序と呼ばれています。

しかし、小文字と大文字が同等であることを表すにはどうなるのでしょうか。この場合、少なくとも次の 2 つのルールが必要です。(1) 小文字aおよびbAおよびBと同等のものとして扱います。(2) 続いてそのエンコーディングを比較します。これは大文字と小文字を区別しない照合順序と呼ばれます。バイナリ照合順序よりも少し複雑になります。

実際には、ほとんどの文字セットには多数の文字があり、ABだけではなくアルファベット全体が含まれます。複数のアルファベットが含まれる場合も、数千種類の文字や多くの特殊記号および句読点から構成される東洋書記体系の場合もあります。また実際には、ほとんどの照合順序は、大文字と小文字の区別だけでなく、アクセント符号 (アクセント符号とはドイツ語のÖに見られるような文字に付けられた符号です) を区別するかどうかに関するルールや、複数文字のマッピングのルール (2 つのドイツ語の照合順序の一方におけるÖ = OEというルールなど) など多くのルールを含んでいます。

MySQL では以下が可能です。

  • さまざまな文字セットを使用して文字列を格納します。

  • さまざまな照合順序を使用して文字列を比較します。

  • 文字セットまたは照合順序が異なる文字列を、同じサーバー、同じデータベース、または同じテーブル内にも混在させます。

  • どのレベルでも文字セットと照合順序を指定できるようにします。

MySQL はこれらの点において、ほかのほとんどのデータベース管理システムに大きく差をつけています。ただし、これらの機能を効果的に使用するには、利用可能な文字セットと照合順序、各デフォルトの変更方法、および文字列演算子および関数の動作にこれらの機能が与える影響を知っておく必要があります。