MySQL文字セット

3218 ワード

文書ディレクトリ
  • 一、文字セットと並べ替え規則
  • 二、MySQL共通文字セットとソート規則
  • 三、関連パラメータ

  • 一、文字セットと並べ替え規則
      文字セットの内容は、character setcollation ruleを含み、各文字セットは複数のソートルールに対応し、
  • 文字セットは、一連の文字と一連の符号化マッピングセット
  • である.
  • ソート・ルールは、各文字を比較するための文字セット内のルール
  • である.
    二、MySQL常用文字セットと並べ替え規則
    #   
    show charset where charset like 'utf8%';/select * from information_schema.character_sets where character_set_name like 'utf8%';
    +--------------------+----------------------+---------------+--------+
    | CHARACTER_SET_NAME | DEFAULT_COLLATE_NAME | DESCRIPTION   | MAXLEN |
    +--------------------+----------------------+---------------+--------+
    | utf8               | utf8_general_ci      | UTF-8 Unicode |      3 |
    | utf8mb4            | utf8mb4_0900_ai_ci   | UTF-8 Unicode |      4 |
    +--------------------+----------------------+---------------+--------+
    #    
    show collation where collation like '%utf8%bin%' or collation like '%utf8%unicode_ci';/select * from information_schema.COLLATIONS where collation_name like '%utf8%bin%' or collation_name like '%utf8%unicode_ci';
    +--------------------+--------------------+-----+------------+-------------+---------+---------------+
    | COLLATION_NAME     | CHARACTER_SET_NAME | ID  | IS_DEFAULT | IS_COMPILED | SORTLEN | PAD_ATTRIBUTE |
    +--------------------+--------------------+-----+------------+-------------+---------+---------------+
    | utf8_bin           | utf8               |  83 |            | Yes         |       1 | PAD SPACE     |
    | utf8_unicode_ci    | utf8               | 192 |            | Yes         |       8 | PAD SPACE     |
    | utf8mb4_bin        | utf8mb4            |  46 |            | Yes         |       1 | PAD SPACE     |
    | utf8mb4_unicode_ci | utf8mb4            | 224 |            | Yes         |       8 | PAD SPACE     |
    | utf8mb4_0900_bin   | utf8mb4            | 309 |            | Yes         |       1 | NO PAD        |
    +--------------------+--------------------+-----+------------+-------------+---------+---------------+
    5 rows in set (0.00 sec)
    
    
  • NO PAD文字の後ろにスペースがある場合は、スペースを文字として処理します.つまり、対比するときにスペースの存在を無視しない.

  • PAD SPACEは、文字の後ろにスペースがある場合は、スペースを無視して比較できることを示しています.つまり、スペースはあってもなくてもいいです.

  • 三、相関パラメータ
    MySQL文字セットに関するパラメータは以下のとおりです.1、MySQLサービス層以下の2つの設定MySQLサービス層文字セットとソートルールは、MySQLサービスが開始された後、デフォルトの文字セットとソートルールを表します.character_set_server: collation_server: 、クライアント層 は、MySQLサービスに接続できる任意のクライアントに対して有効です.character_set_client: 。 3、データベース層character_set_database: collation_database: 4、メタデータ層  データベース名、テーブル名、列名、ユーザー名など.character_set_system: MySQL , , UTF8。 5、結果セット層character_set_results: 。 , 。 6、接続層  、例えば通常の文字列、またはすでに作成されたSQL文はまだ実行されていません.character_set_connection: , 。 collation_connection: 。 7、ファイルシステム層character_set_filesystem: 。、クライアント層、接続層、結果セット層の3層は、一般に一緒に設けられている.例えば、setnames utf8;は、この3つの階層のパラメータを同時に設定する.