たのしいXML: XQuery: 簡単なXMLデータの登録

2008年08月31日(日)更新


■データベースの作成

たけち: 前回まででDB2 Express-Cのインストールと動作確認をしたね。

さらら: はい。

たけち: で、今回はデータベースを作って、簡単なXMLデータを登録してみよう。

さらら: あっ、いよいよ始まるのね。

たけち: まずはデータベースを作ろう。名前は、"SAMPLE01"としておこう。


※ここでは、Windows版についてご説明しています。

1) [スタート] >> [IBM DB2] >> [DB2COPY1(デフォルト)] >> [コマンド行ツール] >> [コマンド・ウィンドウ] を選択し、コマンドウィンドウを開きます。

2) "db2 -td~"というコマンドを入力して、DB2コマンド行プロセッサーを起動します。
  なお、このコマンドでは、"~(チルダー)"という文字をDB2コマンド行プロセッサーに対する「ステートメント終了文字」として設定します。

DB2 Express-CのDB2コマンド行プロセッサーを起動

3) CREATE DATABASE SAMPLE01~ を入力します。

(例)
  db2 => CREATE DATABASE SAMPLE01~
  DB20000I CREATE DATABASE コマンドが正常に完了しました。

たけち: これで"SAMPLE01"という名前のデータベースができたね。。

さらら: 簡単ね。


■テーブルの作成

たけち: じゃ、このデータベースに、"MANYO01"(最後の2桁は数字です)という名前のテーブルを作るね。このテーブルには、次のようにXMLデータを格納できる列を作る必要があるんだよ。

"MANYO01"テーブル

pidpoem

ID,プライマリキー

XMLデータ列

さらら: どうすればいいの?

たけち: 意外に簡単だよ。次に手順を追ってやってみよう。

(1) SAMPLE01データベースにアクセス

1) connect to SAMPLE01~ を入力します。

(例)
  db2 => connect to SAMPLE01~
  データベース接続情報

  データベース・サーバー = DB2/NT 9.5.0
  SQL 許可 ID = ADMINIST...
  ローカル・データベース別名 = SAMPLE01

  db2 =>

(2) テーブル、MANYO01を作成

1) CREATE TABLE MANYO01 (pid BIGINT NOT NULL PRIMARY KEY, poem XML)~ を入力します。

(例)
  db2 => CREATE TABLE manyo01 (pid BIGINT NOT NULL PRIMARY KEY, poem XML)~
  DB20000I SQL コマンドが正常に完了しました。


■サンプルXMLデータの登録

たけち: これでXMLデータを格納できるテーブルができたから、簡単なサンプルとしてXMLデータを登録してみよう。

さらら: あっ、はい。。。 (^ ^*

たけち: 次の3つのXMLデータを登録してみよう。

テーブルに登録するXMLデータ(1)

<poem pno="0008" poet="額田王">
  <genbun>熟田津尓 船乗世武登 月待者 潮毛可奈比沼 今者許藝乞菜</genbun>
  <yomi>熟田津に船乗りせむと月待てば潮もかなひぬ今は漕ぎ出でな</yomi>
  <note></note>
</poem>

テーブルに登録するXMLデータ(2)

<poem pno="0015" poet="中大兄">
  <genbun>渡津海乃 豊旗雲尓 伊理比紗之 今夜乃月夜 清明己曽</genbun>
  <yomi>海神の豊旗雲に入日さし今夜の月夜さやけくありこそ</yomi>
  <note></note>
</poem>

テーブルに登録するXMLデータ(3)

<poem pno="0020" poet="額田王">
  <genbun>茜草指 武良前野逝 標野行 野守者不見哉 君之袖布流</genbun>
  <yomi>あかねさす紫野行き標野行き野守は見ずや君が袖振る</yomi>
  <note></note>
</poem>

さらら: XMLデータとしては簡単ね。

たけち: この3つのXMLデータはデータベースコマンドの"INSERT"コマンドを使って、次のように登録してね。実際の登録の様子も載せておくね。

テーブルにXMLデータを登録

(1) 1つ目のデータ
INSERT INTO MANYO01 (pid, poem) VALUES (0008,
'<poem pno="0008" poet="額田王">
  <genbun>熟田津尓 船乗世武登 月待者 潮毛可奈比沼 今者許藝乞菜</genbun>
  <yomi>熟田津に船乗りせむと月待てば潮もかなひぬ今は漕ぎ出でな</yomi>
  <note></note>
</poem>')~

(2) 2つ目のデータ
INSERT INTO MANYO01 (pid, poem) VALUES (0015,
'<poem pno="0015" poet="中大兄">
  <genbun>渡津海乃 豊旗雲尓 伊理比紗之 今夜乃月夜 清明己曽</genbun>
  <yomi>海神の豊旗雲に入日さし今夜の月夜さやけくありこそ</yomi>
  <note></note>
</poem>')~

(3) 3つ目のデータ
INSERT INTO MANYO01 (pid, poem) VALUES (0020,
'<poem pno="0020" poet="額田王">
  <genbun>茜草指 武良前野逝 標野行 野守者不見哉 君之袖布流</genbun>
  <yomi>あかねさす紫野行き標野行き野守は見ずや君が袖振る</yomi>
  <note></note>
</poem>')~

XMLデータの登録

MANYO01テーブルへのXMLデータの登録(INSERT)

さらら: これで、XMLデータが登録できたのね。

たけち: 一応、念のために3つのデータが入ったかどうか、確認しておこう。

さらら: あっ、そっか。

たけち:
SELECT * FROM MANYO01~
と入力してごらん。

さらら: はい。。。。あっ、なんかいっぱい表示されで、最後に「3 レコードが選択されました。」って出てきたわ。

XMLデータの確認

MANYO01テーブルデータの確認

たけち: それでOKだよ。気になったら、上の方にスクロールしてみると、登録したはずのXMLデータが表示されているからね。

さらら: あっ、本当だ。。

たけち: おつかれさま。これでDB2にテーブルを作って、簡単なXMLデータを入れることができたね。今回は、ここまで。お疲れ様。

さらら: あっ、はい。。。 (^ ^*

→次回は、XMLデータの簡単な検索例です。 (^ ^;


[たのしいXML のインデックス]へ