グローバル化とローカリゼーション

5012 ワード

要旨:このブログはメモとしてのみ使用されます.権利侵害があれば、連絡して、すぐに削除してください(ネット上でブログを探して勉強して、それからノートを手記して、紙のノートは保存しにくいので、ネットのノートに保存します).
このブログでは、MySQLが異なる文字セットと言語を処理するための基礎知識について説明します.
一、文字セットと校正順序
データベース・テーブルは、データを格納および取得するために使用されます.異なる言語と文字セットは、異なる方法で格納および取得する必要があります.そのため、MySQLは異なる文字セット(異なるアルファベットと文字)に適応し、異なるソートとデータの取得方法に適応する必要があります.
複数の言語および文字セットについて説明する場合、次の重要な用語が使用されます.
(1)文字セットがアルファベットと記号の集合である.
(2)ある文字セットのメンバーの内部表現として符号化する.
(3)所定文字をどのように比較するかを示す命令を校正する.
注意:校正はなぜ英語の本文を並べ替えるのが簡単なのか、そうですか.もしかすると.APE、apex、Appleを考慮します.正しいソート順にありますか?これは、大文字と小文字を区別したいかどうかにかかっています.大文字と小文字を区別する校正順序を使用します.これらの語にはソート方式があり、大文字と小文字を区別しない校正順序を使用するには別のソート方式があります.これは、ORDER BYでデータをソートするなどのソートに影響するだけでなく、検索にも影響します(たとえば、appleのWHERE句がAPPLEを見つけることができるかどうかを探します).フランス語やドイツ語のような場合、状況はより複雑であり、ラテン語に基づいていない文字セット(日本語、ヘブライ語、ロシア語など)を使用する場合、状況はより複雑である.
MySQLの通常のデータベース活動(SELECT、INSERTなど)では、あまり心配する必要はありません.どの文字セットと校正を使用するかは、サーバ、データベース、テーブルレベルで決定されます.
二、文字セットと校正順序の使用
MySQLは多くの文字セットをサポートしています.サポートされている文字セットの完全なリストを表示するには、次の文を使用します.
SHOW CHARACTER SET;

解析:この文には、使用可能なすべての文字セットと、各文字セットの説明とデフォルトの校正が表示されます.
サポートされている照合の完全なリストを表示するには、次の文を使用します.
SHOW COLLATION;

この文には、使用可能なすべての校正と、適用可能な文字セットが表示されます.1つ以上の校正を持つ文字セットが表示されます.たとえば、latin 1は異なるヨーロッパ言語に対していくつかの校正がありますが、多くの校正が2回現れ、大文字と小文字を区別します(_csで表されます)、大文字と小文字を区別しません(_ciで表されます).
通常、システム管理では、インストール時にデフォルトの文字セットと校正を定義します.また、データベースの作成時にデフォルトの文字セットと校正を指定することもできます.使用する文字セットと照合を決定するには、次の文を使用します.
SHOW VARIABLES LIKE 'character%';
SHOW VARIABLES LIKE 'collarion%';

実際には、文字セットはサーバ範囲(データベース範囲)の設定ではありません.異なるテーブル、さらには異なるカラムには異なる文字セットが必要であり、両方をテーブルの作成時に指定できます.
テーブルに文字セットと校正を指定するには、次のような文のCREATE TABLEを使用します.
CREATE TABLE mytable
(
    columnn1 INT,
    columnn2 VARCHAR(10)      
) DEFAULT CHARACTER SET hebrew
  COLLATE hebrew_general_ci;

≪分析|Analysis|emdw≫:この文は、2つの列を含む表を作成し、文字セットと校正順序を指定します.
この例ではCHARACTER SETとCOLLATEの両方を指定している.一般的に、MySQLでは、次のようにして、どのような文字セットと校正を使用するかを決定します.
(1)CHARACTER SETとCOLLATEの両方を指定した場合,これらの値を用いる.
(2)CHARACTER SETのみを指定する場合は、この文字セットとそのデフォルトの照合を使用します(SHOW CHARACTER SETの結果に示すように).
(3)CHARATER SETもCOLLATEも指定しない場合は、データベースのデフォルトを使用します.
MySQLでは、文字セットと照合のテーブル範囲を指定できるほか、次のように各カラムに設定できます.
CREATE TABLE mytable
(
    columnn1 INT,
    columnn2 VARCHAR(10),
    column3  VARCHAR(10) CHARACTER SET latin1 COLLATE
    lantin1_general_ci
) DEFAULT CHARACTER SET hebrew
  COLLATE hebrew_general_ci;

解析:ここではテーブル全体および特定のカラムに対してCHARACTER SETとCOLLATEを指定します.
前述したように,ORDER BY句で検索したデータの並べ替えに重要な役割を果たす.テーブルの作成時とは異なる照合順で特定のSELECT文をソートする必要がある場合は、SELECT文自体で行うことができます.
SELECT * FROM customers
ORDER BY lastname,firstname COLLLATE lantin1_general_cs;

解析:このSELECTでは、COLLATEを使用して代替の校正順序を指定します(この例では、大文字と小文字を区別する校正).これは明らかに結果のソート順に影響します.
注意:大文字と小文字を一時的に区別するSELECT文は、通常大文字と小文字を区別しないテーブルで大文字と小文字を区別する検索を行う技術を示しています.もちろん、逆にしてもいいです.
SELECTの他のCOLLATE句は,ここで見たORDER BY句で用いられるほか,COLLATEはGROUP BY,HAVING,集約関数,別名などに用いられる.
最後に、絶対的に必要であれば、文字セット間で文字列を変換することができることに注意してください.このためにCast()またはConvert()関数を使用します.
三、まとめ
このブログでは、文字セットと校正の基礎知識を学び、特定のテーブルとカラムに対して文字セットと校正を定義する方法、必要に応じて代替校正を使用する方法も学びました.
転載先:https://www.cnblogs.com/daisy-996/p/10422254.html