Open Source WEB

テーブル名に漢字を使ったらどうなるか調べてみよう。

実は、データベース名に漢字を使った場合についてずいぶん詳しく調べたが、 それがほとんどそのままテーブル名にも適用できると思われるので、 今回は、かなり飛ばして行こうと思う。

テーブルの作製は、CREATE TABLE で行なうのだが、 実は結構面倒で、私も詳細までは憶えていなくて、 必要なときは本やオンラインマニュアルを見ながらやっている。

CREATE [TEMPORARY] TABLE [IF NOT EXISTS] tbl_name
       [(create_definition,...)]
       [table_options] [select_statement]

今回は、上の、tbl_name に漢字を使った場合を調べる。

とりあえず、「日本」というデータベースの下で実験しよう。

mysql> SET NAMES eucjpms;
Query OK, 0 rows affected (0.02 sec)
 
mysql> CREATE DATABASE `日本`;
Query OK, 1 row affected (0.00 sec)
 
mysql> USE `日本`;
Database changed
mysql>

「都道府県」というテーブルを作り、 都道府県名と県庁所在地を入れられるようにしてみよう。

いきなりであるが、テーブルを作ってみる。 テーブル名だけでなく、カラム名も漢字を使ってみる。 いずれもメタデータ(識別子)なので、バッククォートで囲む。

mysql> CREATE TABLE `都道府県` (`名` varchar(20), `都` varchar(20))
    -> DEFAULT CHARACTER SET eucjpms;
Query OK, 0 rows affected (0.07 sec)
mysql> DESCRIBE `都道府県`;
+-------+-------------+------+-----+---------+-------+
| Field | Type        | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| 名    | varchar(20) | YES  |     | NULL    |       |
| 都    | varchar(20) | YES  |     | NULL    |       |
+-------+-------------+------+-----+---------+-------+
2 rows in set (0.03 sec)
 
mysql> SHOW CREATE TABLE `都道府県`\G
*************************** 1. row ***************************
       Table: 都道府県
Create Table: CREATE TABLE `都道府県` (
  `名` varchar(20) default NULL,
  `都` varchar(20) default NULL
) ENGINE=MyISAM DEFAULT CHARSET=eucjpms
1 row in set (0.00 sec)

mysql>

という具合に、どうもちゃんと出来ちゃったみたいである。

あまりに順調だ。

一応、データを少しだけ入れてみよう。

文字列は シングルクォートで、メタデータはバッククォートというのを 間違えないように注意しながらやってみた。

mysql> INSERT INTO `都道府県` VALUES
    -> ('神奈川県', '横浜市'),
    -> ('山梨県','甲府市'),
    -> ('北海道','札幌市'),
    -> ('愛知県','名古屋市');
Query OK, 4 rows affected (0.03 sec)
Records: 4  Duplicates: 0  Warnings: 0
 
mysql> SELECT * FROM `都道府県`;
+----------+----------+
| 名       | 都       |
+----------+----------+
| 神奈川県 | 横浜市   |
| 山梨県   | 甲府市   |
| 北海道   | 札幌市   |
| 愛知県   | 名古屋市 |
+----------+----------+
4 rows in set (0.00 sec)
 
mysql>

最後に、削除してみよう。

mysql> DROP TABLE `都道府県`;
Query OK, 0 rows affected (0.00 sec)
 
mysql> SHOW TABLES;
Empty set (0.00 sec)
 
mysql>

とても正しく動いてしまって、何も問題が起きない。 これでは、話が面白くならないではないか。 いや、まあ、データベースなんで、完璧に動かないと使い物にならないんであるが、 今のところ問題はないようだ。

もっと詳しく調べれば、何か問題が出て来るかもしれないが、 それは次回にしよう。


戻る:データベース名に漢字が使えるみたい

次へ:テーブルはファイルで実現されている


フィードバック:

Name:
Comment:
Pharma223: (Mon Sep 21 00:53:07 2009 )
Very nice site! cheap cialis http://aixopey.com/qqavot/4.html
Pharmb173: (Mon Sep 21 00:53:13 2009 )
Very nice site!

このサイトは、 IPA の「平成15年度オープンソフトウエア活用基盤整備事業」 の委託事業として開発されたKahuaで試験的に運用しております。

Copyright (c) 2004-2007 株式会社タイムインターメディア About Us