National Character Setとは
JDBC 4.0でPreparedStatementインタフェースとResultSetインタフェースに"National Character Set"関連の仕様追加により結構な数のメソッドが追加になっており,これを調べようと思ったのですが,この"National Character Set"が何なのかというのがまず良く分からず,それをSQL2003を引っ張り出してきて調べたりしていました.
しかしMySQLリファレンスマニュアルで"各国キャラクタセット"と和訳されているこの"National Character Set"ですが,結局の所一言で言ってしまうと「文字列型カラムのキャラセットを指定する際,RDBMS実装の既定のキャラセットをそこに使用する」ということのようですね.要するにMySQLの場合は以下の2つの宣言が同じ意味であると.
CHAR(10) CHARACTER SET utf8 NATIONAL CHARACTER(10)
ただのエイリアスです.ひとりで騒いでしまいました.orz
mysql> create table t1 (c1 national character(10)); Query OK, 0 rows affected (0.05 sec) mysql> show create table t1\G *************************** 1. row *************************** Table: t1 Create Table: CREATE TABLE `t1` ( `c1` char(10) character set utf8 default NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 1 row in set (0.02 sec)
"National Character Set"の"National"はマーケティング用語でいうところの"ナショナルブランド"のNationalと同じ意味だったわけですね.