データベースでは collation という言葉を良く目にする。
これを日本語では照合順序と言うらしい。
自分なりの定義(経験を踏まえていくつかのページを参照した結果):
具体的に考えるときにイメージしやすい良いページがあった。
[MySQLウォッチ]第37回 文字コードに起因する問題は文字化けだけじゃない,ソート順とcollationの関係
※末尾にポイントとなる箇所を抜粋して引用
9.1. 一般のキャラクタセットおよび照合順序
照合順序の使用
(抜粋して引用)
そのため,文字コード以外に,文字コード毎に文字の順番を規定するためのデータベースが用意されている。それが,キャラクタセットの照合順序であ り,MySQLではcollationとして,システムに格納されている。図1のように show collation; を実行すると,格納されているcollationが参照できる。
図1●collationの一覧(MySQL5.0.24)
MySQL5.0では,126種類のCollationが用意されている。一つの文字コードに複数のCollationが用意されているのが分かる。例
えば,MySQLのデフォルト文字コードであるlatin1は,8種類も用意されている。Collationの命名規則は,"文字コード_言語名_比較
法"となっている。比較方法は,表1のような意味を持つ。
表1●Collationの比較法
例えば,ujis文字コードは,ujis_japanese_ciとujis_binの2種類のCollationが用意されている。これは,日本語用
の大文字小文字を区別するものとバイナリコードで区別するものというのが分かる。日本語用の文字コードは,日本語専用なので,海外の文字コードのように,
言語による照合順序の違いはないので,どれも2種類だけだ。但し,UTF8は,各国語共通なので,21種類ものCollationがある。
これを日本語では照合順序と言うらしい。
自分なりの定義(経験を踏まえていくつかのページを参照した結果):
- collation とは照合順序のことでソート順(=文字コードの大小比較)を定めたルール。
- 国や場面によって文字列のソート順が異なるため、複数のルールが存在する
- データベース内にあらかじめ組み込まれている
- 実際、照合順序(collation)はソート順(order by)に影響する。
具体的に考えるときにイメージしやすい良いページがあった。
[MySQLウォッチ]第37回 文字コードに起因する問題は文字化けだけじゃない,ソート順とcollationの関係
※末尾にポイントとなる箇所を抜粋して引用
- 単にこのページを読むだけでなくデータベースの操作経験があったほうがいい。
- オープンソースで手軽に試すなら MySQL を phpMyAdmin で操作してみる。
- その際は XAMPP を使えば環境準備が簡単。
- 学習環境&演習環境としてオススメ。
9.1. 一般のキャラクタセットおよび照合順序
照合順序とは、キャラクタセット内の文字を比較するためのルールを集めたものです。
照合順序の使用
照合順序は、特定の言語とロケールの基準に基づいて、文字データの文字列の並べ替え方法および比較方法に関する規則を指定します。
(抜粋して引用)
ソート処理での文字コードの影響
文字には,大文字と小文字のように同じ文字ながら,単語や文書での位置によって体裁が変わる場合がある。また,海外では,地域によって,アルファベット の並びが異なったり,文字自体が異なったりする言語もある。例えば,キートップの刻印が,国や地域によって異なるのはご存知だろうか。そのため,文字コード以外に,文字コード毎に文字の順番を規定するためのデータベースが用意されている。それが,キャラクタセットの照合順序であ り,MySQLではcollationとして,システムに格納されている。図1のように show collation; を実行すると,格納されているcollationが参照できる。
図1●collationの一覧(MySQL5.0.24)
mysql> show collation; +----------------------+----------+-----+---------+----------+---------+ | Collation | Charset | Id | Default | Compiled | Sortlen | +----------------------+----------+-----+---------+----------+---------+ | big5_chinese_ci | big5 | 1 | Yes | Yes | 1 | | big5_bin | big5 | 84 | | Yes | 1 | |
表1●Collationの比較法
ci | 大文字小文字を区別しない |
cs | 大文字小文字を区別する |
bin | バイナリコードで比較する |
コメント
コメントを投稿