1. ホーム
  2. マイスル

[解決済み】キャラクタセットと照合順序の正確な意味は何ですか?

2022-03-26 14:11:07

質問

を読むことができます。 MySQL のドキュメントを見ると、かなり明確です。しかし、どの文字セットを使用するかはどのように決定するのでしょうか?照合順序はどのようなデータに影響を与えるのでしょうか?

この2つの説明と選び方を教えてほしいのです。

どのように解決するのか?

MySQLから ドキュメント :

A 文字セット は、記号 とエンコーディングがあります。A 照合 は の文字を比較するためのルールです。 文字セットです。この の例を挙げて、その違いを明確にします。 架空の文字セット

というアルファベットがあるとします。 A'、'B'、'a'、'b'の4文字です。私たちは 各文字に数字を与える: 'A' = 0, B' = 1, 'a' = 2, 'b' = 3。文字 A'は記号であり、数字の0は を符号化したものであり、その組み合わせは 4つの文字とその のエンコーディングが文字セットです。

さて、ここで比較したいのは 二つの文字列値、'A'と'B'。このとき これを行う最も簡単な方法は、次のようになります。 エンコーディングは 0が'A'、1が'A'です。 'B'. 0は1より小さいので、次のように言います。 A'は'B'よりも小さい。さて、ここまでで は、照合順序を適用しています。 文字セットです。照合順序は のルール(今回は1つのルールのみ)です。 エンコーディングを比較する。 最も単純な照合順序は バイナリーコレーション

しかし、もし 小文字と大文字は と等価なのでしょうか?そうすると、少なくとも の2つのルールがあります。(1) 小文字の「a」と「b」は、「a」と「b」のように A'と'B'と同等である。 のエンコードを比較する。これを 大文字・小文字を区別しない照合順序 これは バイナリより少し複雑 の照合になります。

現実には、ほとんどの文字セットには A'や'B'だけでなく、多くの文字があります。 しかし、アルファベット全体、時には 複数のアルファベットや東洋の文字 何千もの文字があるシステムです。 多くの特殊記号と 句読点 また、実生活でも ほとんどの照合順序は多くの規則を持っています。 大文字と小文字の区別がないだけでなく アクセントの不感受性(quot;accent"は、quot;accent;accent;を意味します。 のように文字に付いているマークです。 ドイツ語の'ö')や複数文字の のマッピング(例えば、'ö' = 'ö'というルール)があります。 2つのドイツ語のうち1つは「OE」。 の照合表)。