トップページ -> インストール,設定,利用 -> PostgreSQL -> PostgreSQL 上で,Eclipse のデータツール・プラットホーム (DTP) を使う
[サイトマップへ], [サイト内検索へ]

PostgreSQL 上で,Eclipse のデータツール・プラットホーム (DTP) を使う

Eclipse のデータツール・プラットホーム (DTP) とは, リレーショナルデータベースの操作と管理の機能を持ったソフトウエアです.

この Web ページでは,Eclipse のデータツール・プラットホーム (DTP) の操作法を説明する.

この Web ページでは,リレーショナルデータベース管理システムとして,PostgreSQL を使う. ( MySQLJava DB (Derby) など,他のリレーショナルデータベース管理システムについては,別のページで説明している).

参考 Web ページ

DTP の Web ページ:http://www.eclipse.org/datatools/


必要となるソフトウエア

あらかじめ決めておく事項

使用するデータベースのデータベース論理名と, PostgreSQL にログインするために使うデータベース・一般ユーザのアカウント(ユーザ名とパスワード)を決めておくこと. この Web ページでは,次のように書きます.

(参考)データベースとアカウントの作成

この Web ページの手順を試すために,新しいデータベースと,新しい一般ユーザのアカウントを作りたいという場合は, PostgreSQL のコマンドラインクライアント を使って作るのが簡単です. Windows のコマンドプロンプトなどで,次のコマンドを実行します.

※ まずは,Windows で「スタート」 →「プログラム」 →「PostgreSQL 8.3」 →「コマンド・プロンプト」と操作
createuser -U pgadmin -P -S -D -R testuser
createdb -U pgadmin -O testuser -E UTF8 testdb

なお,データベースとアカウントの作成には,PostgreSQL データベース管理者ユーザ名パスワード必要になるので,前もって調べておくこと. 上記では,Postgres データベース管理者のユーザ名を pgadmin と書いています.

設定項目

設定に必要になるので,前もって,Eclipse インストールディレクトリと, PostgreSQL のバージョンと, PostgreSQL 用 JDBC の jar ファイルが存在するディレクトリ を調べておいてください この Web ページでは,次のように書きます.

※ JDBC の jar ファイルが無いときは,http://jdbc.postgresql.org/

PostgreSQL を使うために,次の設定を行うことになるので,確認しておく.


データツール・プラットホーム (DTP) の機能

データツール・プラットホーム (DTP) が持つ以下の機能を説明する.

DTP のバージョンが古いと,他のプラグインとの相性だと思うのですが,DTP がうまく動かないという場合がありました.その場合は, 「Eclipse でインストール済みのフィーチャの更新」 のWeb ページを参考にして,DTP の更新を行ってみてください.


PostgreSQL ドライバー定義

【要点】Eclipse で JDBC ドライバー定義を行う.

  1. 設定項目の展開

    ウインドウ (Window)」-> 「設定 (Preferences)」-> 「データ管理」を展開-> 「接続 (Connectivity)」を展開,という手順で操作する.

  2. ドライバーの追加の開始

    「接続」の下の「ドライバー定義」をクリックする

    [image]
  3. ドライバーの追加

    「ドライバー定義のウインドウ」が開く.右の方にある「追加 (Add)」をクリック.

    [image]
  4. ドライバー・テンプレートの選択

    「新規ドライバー定義 (New Driver Definition) のウインドウ」が開くので, 「PostgreSQL JDBC ドライバー PostgreSQL 8.x」をクリック.

    まだ,設定があるので,「OK」を押さないこと.

    [image]
  5. Jar リストの設定
    1. Jar リスト」をクリックした後,右側の「JAR/ZIP の追加」をクリック

      [image]
    2. Postgres 用 JDBC の jar ファイル>C:\Program Files\psqlJDBC\postgresql-8.3-603.jdbc4.jar を設定

      [image]
    3. 古い設定「postgresql-8.1-404.jdbc2.jar」を消去する.

      まず,「postgresql-8.1-404.jdbc2.jar」をクリックして, 「JAR/Zip の除去」をクリックする.

      [image]
  6. プロパティーの設定

    プロパティー」をクリックした後, 次のように設定する.

    以上の設定が終わったら,「OK」をクリックする. これで,PostgreSQL を使うためのドライバー定義が終わった.

    [image]
  7. 設定の確認

    PostgreSQL JDBC ドライバー」 というような名前が付いた行が増えているので確認しておく.

    [image]

PostgreSQL への「接続」の設定

  1. (前準備) 上記の「PostgreSQL ドライバー定義」が終わっていること.
  2. データ・ソース・エクスプローラーを開く.

    ウインドウ (Window)」-> 「パースペクティブを開く (Perspective)」-> 「その他」-> 「データベース開発 (Database Development)」と操作し, 「OK」をクリック.

  3. データ・ソース・エクスプローラ (Data Source Explorer) が,左側に開くので, 「データベース接続」を右クリックし, 「新規 (New)」を選ぶ.

    [image]
  4. 「新規接続プロファイル (connection profile) のウインドウ」が開くので, 「PostgreSQL」を選び, 「次へ (Next)」をクリック.

    [image]
  5. 接続のテスト

    「接続プロファイルのウインドウ」が開くので, 「接続のテスト」をクリックする.

    [image]
  6. 「ping が正常に終了しました」 と表示されることを確認

    確認したら「OK」をクリック.

    [image]

    エラーが出たときのヒント

  7. 新規接続プロファイルの要約が表示されるので確認

    次へ」をクリック. 新規接続プロファイルの要約が表示されるので確認. 「終了」をクリックし,新規接続の設定を終える.

    [image]
  8. データ・ソース・エクスプローラでの確認

    データ・ソース・エクスプローラ (Data Source Explorer) に,いま設定した「接続」が表示されるので確認する.

    [image]

これで,PostgreSQL への「接続」の設定が終わった.


 

テーブル定義

  1. (前準備) 上記の「PostgreSQL への『接続』の設定」が終わっていること.
  2. (前準備) データ・ソース・エクスプローラ (Data Source Explorer) が,開いていなければ,下記の手順で開く.

    ウインドウ (Window)」-> 「パースペクティブを開く (Perspective)」-> 「その他」-> 「データベース開発 (Database Development)」と操作し, 「OK」をクリック.

  3. 接続

    データ・ソース・エクスプローラ (Data Source Explorer) で, 先ほど作った「接続」である「新規 PostgreSQL」を右クリック. 「接続」を選ぶ.

    ※ 「接続」が薄い文字になって選べないときは,「すでに接続済み」という意味なので,気にせずに次に進む.

    [image]
  4. 新規 PostgreSQL (PostgreSQL v ...)」のにある データベース論理名「testdb」を展開(左横の「+」をクリック).

    [image]
  5. testdb」の下の「Catalogs」を展開(左横の「+」をクリック).

    [image]
  6. Catalogs」の下の「testdb」を展開(左横の「+」をクリック).

    [image]
  7. testdb」の下の「スキーマ」を展開(左横の「+」をクリック).

    [image]
  8. スキーマ」の下の「public」を展開(左横の「+」をクリック).

    展開の結果,テーブル名の一覧が表示される.

    [image]
  9. ツールの起動」 「public」の下の 「テーブル」を右クリック. 「新規テーブル」を選ぶ.

    [image]
  10. 「オプションのウインドウ」は,何もせず,「次へ」をクリック.

    [image]
  11. 「列のウインドウ」が現れたら,まず「列追加 (Add Column)」をクリック

    [image]
  12. 1列追加されるので,下の方の 「列詳細」で,「名前」と「データ型」と「長さ」と「NULL 可能」と「デフォルト値」を設定.

    [image]

    例えば

    のように.

  13. 「列のウインドウ」では,「テーブル名」の記述も行っておくこと.

    テーブル名は,デフォルト値は「new_table」になっている.変えておく.

    [image]
  14. 列の追加とテーブル名の設定が終わったら,「次へ」をクリック

    [image]
  15. 主キーの設定

    一意の値をとる(行が違えば,値が違う)属性で,かつ NULL になることがないものを主キーとして設定します.設定が終わったら「終了」をクリック.

    [image]
  16. すると,SQL ステートメント・エディタが開き,この中に,自動生成された SQL プログラム が書かれています.

    [image]
  17. まだ,テーブルはできていません. SQL ステートメント・エディタ内の任意の場所で右クリックして「すべて実行」を選んで下さい. これによって,SQL が実行されて,テーブルが生成されます.
  18. 確認のため, データ・ソース・エクスプローラ (Data Source Explorer) で,右クリックして「リフレッシュ」を実行してください.新しく生成したテーブルが現れる.

    ※ 現れないときは,「テーブルの生成」に失敗したことを疑って下さい.

    「SQL の結果」ウインドウで「失敗」(つまりエラーメッセージ)が無いかを確認してください. (つまり,自動生成された SQL プログラムにエラーがあることを疑って下さい.「primary key」の部分で,エラーが出ることがあります.対処は簡単にできると思います).

    「成功」しているときは,「切断」と「接続」をやり直すと,うまく表示されるかも知れません.

    [image]

(参考)テーブル定義 (専用ツール) ・・・ 日本語のテーブル名,列名を持つテーブルの場合

この Web ページでは,PostgreSQL バージョン 8.3.3 での動作結果を報告します.

MySQL で,日本語のテーブル名,列名を持つテーブルを定義できるか試してみました.(簡単なものしか試してみませんが)出来るようです.

[image]
図.テーブル名「商品」,列名「商品番号」,「商品名」としてテーブルを定義しているところ

[image]
図.確認のため,データ・ツール・プラットフォームの SQL スクラップブックで,上記のテーブルを,使ってみているところ(うまく動いているようです).

[image]
図.テーブル名や列名に「〜」,「①」などの文字を含めた場合

[image]
図.確認のため,データ・ツール・プラットフォームの SQL スクラップブックで,上記のテーブルを,使ってみているところ(うまく動いているようです).

[image]
 

SQL 編集と実行,SQL 実行結果のファイル出力

SQL スクラップブックを使い,SQL の編集と実行ができる.

  1. (前準備) 上記の「MySQL への『接続』の設定」が終わっていること.
  2. (前準備) データ・ソース・エクスプローラ (Data Source Explorer) が,開いていなければ,下記の手順で開く.

    ウインドウ (Window)」-> 「パースペクティブを開く (Perspective)」-> 「その他」-> 「データベース開発 (Database Development)」と操作し, 「OK」をクリック.

  3. 接続

    データ・ソース・エクスプローラ (Data Source Explorer) で, 先ほど作った「接続」である「新規 PostgreSQL」を右クリック. 「接続」を選ぶ.

    ※ 「接続」が薄い文字になって選べないときは,「すでに接続済み」という意味なので,気にせずに次に進む.

    [image]
  4. SQL スクラップブックを開く

    分かりにくいですが,Eclipse の上部に並んでいるたくさんのボタンのうち, 左から4番目の青色のボタンが「SQL スクラップブック」を開くためのボタンです.

    [image]
  5. SQL の編集と実行

    ここでは,SQL の編集と実行の練習用に,SQL の見本をいくつか示している.下記をカットアンドペーストして,練習に使ってください.

    見本1.commodity テーブル

    commodity テーブルのテーブル定義

    ----------------------ここから---------------------
    CREATE TABLE commodity (
        type INTEGER primary key not null,
        name VARCHAR(32) not null,
        price INTEGER );
    ----------------------ここから---------------------
    

    [image]
    図.commodity テーブルのテーブル定義

    [image]
    図.上記の実行結果

    commodity テーブルへの列の挿入

    ----------------------ここから---------------------
    INSERT INTO commodity VALUES( 1, 'apple', 50 );
    INSERT INTO commodity VALUES( 2, 'orange', 20 );
    INSERT INTO commodity VALUES( 3, 'strawberry', 100 );
    INSERT INTO commodity VALUES( 4, 'watermelon', 150 );
    INSERT INTO commodity VALUES( 5, 'melon', 200 );
    INSERT INTO commodity VALUES( 6, 'banana', 100 );
    ----------------------ここまで----------------------
    

    [image]
    図.commodity テーブルへの列の挿入

    [image]
    図.上記の実行結果

    commodity テーブルに対する SQL の例

    ----------------------ここから---------------------
    select * from commodity;
    ----------------------ここまで----------------------
    

    期待される結果

     TYPE NAME       PRICE
     ---- ---------- -----
        1 apple         50
        2 orange        20
        3 strawberry   100
        4 watermelon   150
        5 melon        200
        6 banana       100
    

    [image]
    図.commodity テーブルに対する SQL の例

    [image]
    図.上記の実行結果

    見本2.科目テーブル,学生テーブル,履修登録テーブル

    今度の見本(見本2)では,日本語のテーブル名,日本語の列名を試します.

    ※ テーブル名に日本語を使っていますが,特に問題ありませんでした.

    科目テーブルのテーブル定義

    ----------------------ここから---------------------
    create table 科目 (
           科目番号      integer    not null,
           科目名      varchar(100)    not null,
           単位数      integer    not null,
           担当教員名 varchar(100)     not null,
           primary key (科目番号)
    );
    ----------------------ここから---------------------
    

    [image]
    図.科目テーブルのテーブル定義

    [image]
    図.上記の実行結果

    学生テーブルのテーブル定義

    ----------------------ここから---------------------
    create table 学生 (
           学生番号      integer    not null,
           氏名      varchar(100)    not null,
           primary key (学生番号)
    );
    ----------------------ここから---------------------
    

    [image]
    図.学生テーブルのテーブル定義

    [image]
    図.上記の実行結果

    履修登録テーブルのテーブル定義

    ----------------------ここから---------------------
    create table 履修登録 (
           科目番号      integer    not null,
           学生番号      integer    not null,
           primary key (科目番号,学生番号),
           foreign key (科目番号) references 科目(科目番号),
           foreign key (学生番号) references 学生(学生番号)
    );
    ----------------------ここから---------------------
    

    [image]
    図.履修登録テーブルのテーブル定義

    [image]
    図.上記の実行結果

    テーブルへの列の挿入

    ----------------------ここから---------------------
    insert into 科目 values ( 1001, 'データベース',    2, 'X' );
    insert into 科目 values ( 1002, 'プログラミング',  2, 'Y' );
    insert into 学生 values ( 2008001, 'AA AAA' );
    insert into 学生 values ( 2008002, 'BB BBBB' );
    insert into 履修登録 values ( 1001, 2008001 );
    insert into 履修登録 values ( 1001, 2008002 );
    insert into 履修登録 values ( 1002, 2008002 );
    ----------------------ここまで----------------------
    

    [image]
    図.テーブルへの列の挿入

    [image]
    図.上記の実行結果

    科目テーブル,履修登録テーブルに対する SQL の例

    ※ データベースの中身に日本語が含まれていますが,特に問題ありませんでした.

    ----------------------ここから---------------------
    select 科目.科目番号, 科目.科目名
    from 科目, 履修登録
    where 履修登録.学生番号 = 2008001 AND 履修登録.科目番号 = 科目.科目番号;
    ----------------------ここまで----------------------
    

    [image]
    図.科目テーブル,履修登録テーブルに対する SQL の例

    [image]
    図.上記の実行結果

    データとして「①」や「〜」を扱う例

    ※ 特に問題ありませんでした.

    ----------------------ここから---------------------
    insert into 科目 values ( 1003, 'プログラミング演習Ⅲ①〜②', 2, 'X' );
    ----------------------ここまで----------------------
    

    [image]
    図.データとして「①」や「〜」を扱う例

    [image]
    図.上記の実行結果

    [image]
    図.確認のため,科目テーブルの中身を表示した結果
  6. SQL 実行結果の保存

    SQL 実行結果が表示されているウインドウで右クリックすることで, 実行結果を,簡単にファイルに保存できる.


 

テーブルの一覧表示と中身の表示と更新(行の追加,行の削除,更新)

テーブルの中身を簡単に見ることができ, データの更新や,行の追加,削除も簡単に行えるツールです. SQL を使わずに簡単にできる.

上記の「PostgreSQL への『接続』の設定」が終わっていること.

  1. (前準備) 上記の「PostgreSQL への『接続』の設定」が終わっていること.
  2. (前準備) データ・ソース・エクスプローラ (Data Source Explorer) が,開いていなければ,下記の手順で開く.

    ウインドウ (Window)」-> 「パースペクティブを開く (Perspective)」-> 「その他」-> 「データベース開発 (Database Development)」と操作し, 「OK」をクリック.

  3. 接続

    データ・ソース・エクスプローラ (Data Source Explorer) で, 先ほど作った「接続」である「新規 PostgreSQL」を右クリック. 「接続」を選ぶ.

    ※ 「接続」が薄い文字になって選べないときは,「すでに接続済み」という意味なので,気にせずに次に進む.

    [image]
  4. 新規 PostgreSQL (PostgreSQL v ...)」のにある データベース論理名「testdb」を展開(左横の「+」をクリック).

    [image]
  5. testdb」の下の「Catalogs」を展開(左横の「+」をクリック).

    [image]
  6. Catalogs」の下の「testdb」を展開(左横の「+」をクリック).

    [image]
  7. testdb」の下の「スキーマ」を展開(左横の「+」をクリック).

    [image]
  8. スキーマ」の下の「public」を展開(左横の「+」をクリック).

    展開の結果,テーブル名の一覧が表示される.

    [image]
  9. 扱いたいテーブル(ここでは「COMMODITY」を右クリック.「データの扱い」→「編集」と操作する.

    [image]
  10. テーブル編集用のウインドウが開く. これで,更新,行の挿入,行の削除が簡単にできる. 更新後は,ウインドウ内のの任意の場所で右クリックして「保管」を選んで下さい. この操作を行わない場合,全ての更新が無かったことになる.

    [image]
    (参考)日本語を使っても,特に問題はなさそうです.

    [image]

 

テーブルのインポート・エクスポート

CSV 形式のファイルなどと,テーブルの中身をインポート・エクスポートすることも 簡単に行えます.

閲覧,編集したいテーブル名を右クリック. 「データ」-> 「ロード」でインポート. 「データ」-> 「抽出」でエクスポート.


本サイトのサイトマップは,サイトマップのページをご覧下さい. 本サイト内の検索は,サイト内検索のページをご利用下さい.

問い合わせ先: 金子邦彦(かねこ くにひこ) [image]