Chat (Lingr.com)
Informaiton
Daily
Column
- MySQL日本語の旅(5/1)
- アクセス向上秘伝(5/9)
- 一風変ったHaskellλ門(6/13)
- SICP Answer Book (5/31) 問題3.26追加
Zope Solution
Extra
アーカイブ
OSS案内所
Site Info
関連リンク
5.0 の新機能
バージョンが4から5に上がったということは、大きな機能アップなどが なければならない。 どんな機能が追加されたかは、MySQL Users Conference 2005 で、 何度となく紹介された。
私は、5.0 In Depth というセッションに参加し、資料ももらったので、 そこから抜粋しよう。
5.0 の目玉は次の4つである。
- Stored Procedure
- Views
- Triggers
- Cursors
Cursorsはともかく、最初の3つは大変重要な機能アップだと思う。 しかし、色々説明された中で、日本語に関係ある新機能は見当たらなかった。 だから、「MySQL日本語の旅」では、これらの 5.0 の目玉とも言えるものについては説明はしない。 そもそも私が使っていないし、MySQL5.0の一般的なことについては、 http://www.mysql.com/ とかで調べて欲しい。 日本語のページも存在するが、5.0についての情報はほぼ皆無だと思う。 誰か日本語に訳してくれると私だけでなく、 たぶん他の大勢の人々も助かるのだが誰かいませんかね。
日本語関連の新機能
しかし、色々説明された中で、日本語に関係ある新機能はほとんどない。
日本語の利用に関して一番大きい変更は、 5.0.4のインストールと動作確認で言及した Windows版の SJIS と UJIS だけかも知れない。
この追加は色々な意味を含んでいて、とても重要であるので、 ここでちょっと書くのではなく、キャラクタセット関連のところで、 延々と書いていこうと思っている。キャラクタセット変換 (あるいはコード変換)のところで色々問題になるのである。 もちろん、この追加によって解決された問題もある。
それ以外に、マルチバイト対応が進んでいるかも知れない。 文字列処理関係の多数の関数などで、 そのあたりがどこまでちゃんとなったか注意してみよう。
SHOW で WHERE が使えて便利になった
色々MySQLの情况を把握するために、SHOWを非常に良く利用する。 SHOWで条件をつけるのに、4.1までは LIKE によるパターンマッチしかなかった。 これでは、非常に制約がきつい。
5.0.3から、SHOW で WHEREが使えるようになったのである。 オンラインマニュアルの MySQL Reference Manual :: D.1.4 Changes in release 5.0.3 (23 Mar 2005: Beta) の中に以下の記述がある。
SHOW DATABASES, SHOW TABLES, SHOW COLUMNS, and so forth display information about the INFORMATION_SCHEMA database. Also, several SHOW statements now accept a WHERE clause specifying which output rows to display. See Chapter 22, The INFORMATION_SCHEMA Information Database.
つまり、SHOW全てではないらしいが、WHEREを付けられるようになったらしい。
実際的な説明は、リンクを辿って MySQL Reference Manual :: 22.2 Extensions to SHOW Statements に辿り着けば、後で示すマルチバイト対応のキャラクタセットをリストアップ する例などが見つかる。
マニュアルのSHOWのところでちゃんと説明が追加されているのが 当然だと思うが、英語版でもまだそこまでは改訂されていないので、 うっかりしていると気がつかないままになりがちだ。 せっかく良い機能を追加したのに。
と言う訳で、
mysql> SHOW CHARACTER SET WHERE Description LIKE '%Japanese'; +---------+---------------------------+---------------------+--------+ | Charset | Description | Default collation | Maxlen | +---------+---------------------------+---------------------+--------+ | ujis | EUC-JP Japanese | ujis_japanese_ci | 3 | | sjis | Shift-JIS Japanese | sjis_japanese_ci | 2 | | cp932 | SJIS for Windows Japanese | cp932_japanese_ci | 2 | | eucjpms | UJIS for Windows Japanese | eucjpms_japanese_ci | 3 | +---------+---------------------------+---------------------+--------+ 4 rows in set (0.00 sec)
が可能になったのである。
これでは有効性がイマイチだろうから、 マルチバイト対応のキャラクタセットを取りだしてみよう。
mysql> SHOW CHARACTER SET WHERE Maxlen > 1; +---------+---------------------------+---------------------+--------+ | Charset | Description | Default collation | Maxlen | +---------+---------------------------+---------------------+--------+ | big5 | Big5 Traditional Chinese | big5_chinese_ci | 2 | | ujis | EUC-JP Japanese | ujis_japanese_ci | 3 | | sjis | Shift-JIS Japanese | sjis_japanese_ci | 2 | | euckr | EUC-KR Korean | euckr_korean_ci | 2 | | gb2312 | GB2312 Simplified Chinese | gb2312_chinese_ci | 2 | | gbk | GBK Simplified Chinese | gbk_chinese_ci | 2 | | utf8 | UTF-8 Unicode | utf8_general_ci | 3 | | ucs2 | UCS-2 Unicode | ucs2_general_ci | 2 | | cp932 | SJIS for Windows Japanese | cp932_japanese_ci | 2 | | eucjpms | UJIS for Windows Japanese | eucjpms_japanese_ci | 3 | +---------+---------------------------+---------------------+--------+ 10 rows in set (0.00 sec)
こういう風に比較ができたりすれば、重箱の隅を調査には非常に便利である。
フィードバック:
There is no comment.