sql >> データベース >  >> RDS >> Mysql

文字セットと照合は正確にはどういう意味ですか?

    MySQLから docs :

    文字セット シンボルとエンコーディングのセットです。 照合 文字セット内の文字を比較するためのルールのセットです。架空の文字セットの例を使用して、区別を明確にしましょう。

    'A'、'B'、'a'、'b'の4文字のアルファベットがあるとします。各文字に番号を付けます:'A' =0、'B' =1、'a' =2、'b' =3。文字'A'は記号であり、数字0は'A'のエンコードです。 4文字すべてとそのエンコーディングの組み合わせは文字セットです。

    ここで、2つの文字列値「A」と「B」を比較するとします。これを行う最も簡単な方法は、エンコーディングを確認することです。「A」の場合は0、「B」の場合は1です。 0は1未満であるため、「A」は「B」未満であると言います。これで、文字セットに照合を適用することができました。照合は一連のルールです(この場合は1つのルールのみ):「エンコーディングを比較してください」。これを、考えられるすべての照合の中で最も単純なバイナリ照合と呼びます。

    しかし、小文字と大文字が同等であると言いたい場合はどうでしょうか。次に、少なくとも2つのルールがあります。(1)小文字の「a」と「b」を「A」と「B」に相当するものとして扱います。 (2)次にエンコーディングを比較します。これをケースに依存しない照合と呼びます。バイナリ照合よりも少し複雑です。

    実生活では、ほとんどの文字セットには多くの文字があります。「A」と「B」だけでなく、アルファベット全体、場合によっては複数のアルファベット、または数千の文字を含む東部の書き込みシステム、および多くの特殊記号と句読点があります。また、実際の生活では、ほとんどの照合で大文字と小文字の区別だけでなく、アクセントの区別(「アクセント」はドイツ語の「ö」のように文字に付けられたマーク)や複数の文字のマッピング(「ö」=「OE」の規則など)など、多くの規則があります。 '2つのGermancollat​​ionsの1つで)。



    1. MySQLデータベースのバックアップと復元(エクスポートとインポート)の方法チュートリアル

    2. ストアドプロシージャからパラメータを取得しますか?

    3. MAX()–MySQLの列の最大値を見つける

    4. OracleではsubstrまたはLIKEの方が高速ですか?