Apache Derby/Interactive Use

出典: Fukudat

Eclipse の中から、Apache Derby を対話的 (interactive) に使うことができる。対話的とは、プログラムを書かずに(この場合はコマンドをタイプして)操作できるということ。 Im

目次

準備

  • Eclipse を起動.
    • Windows の場合、c:\eclipse\eclipse.exe を実行。 (ただし,c:\eclipseはEclipseのインストールディレクトリ)
    • Linux の場合、/opt/eclipse/eclipse を実行。 (ただし,/opt/eclipseはEclipseのインストールディレクトリ)
  • 新規プロジェクトを作成する .
    • プルダウンメニュー "File" ⇒ "New" ⇒ "Project..." ⇒
    • "Java Project" を選んで Next ⇒
    • 適当なプロジェクト名(例えば sample)を入力して Finish
  • 作成したプロジェクトで、Apache Derby を使えるようにする.
    • Java Perspective を開く (ウィンドウ右上の Open Perspective アイコンを押して、Java を選択)
    • Package Explorer view (エキスプローラ風) 中に,さっき作成したプロジェクトを見つけ、右クリック ⇒ Apache Derby ⇒ Add Apache Derby nature
  • ここで,もし下の図のようなエラーが出るようだったら…
    • プルダウンメニュー "Window" ⇒ "Preferences..." ⇒ "Java/Build Path/Classpath Variables" を開き
    • New ボタンを押して,"ECLIPSE_HOME=c:\eclipse" を追加(下の図参照.c:\eclipse はEclipseをインストールしたトップディレクトリ)
    • "OK" ⇒ "OK"... で完了.下図のようにエラーが消えるはず.

Derby Network Server を起動

  • もう一度、Package Explorer view で、プロジェクトを右クリック ⇒ Apache Derby ⇒ Start Derby Network Server を選択。Derby のサーバープロセスがバックグラウンドで起動する。

インタラクティブ SQL プロセッサ ij を起動

  • もう一度、Package Explorer view で、プロジェクトを右クリック ⇒ Apache Derby ⇒ "ij" (Interactive SQL) を選択すると、Console view に ij が現れる。
 ij version 10.1
 ij> 
  • (optional) Console タブをダブルクリックして最大化する。
  • プロンプト ij> に対して、SQL文を入力することができる。ただし、 SQL文の終りにはセミコロン (;) を付ける。

サンプル操作

以上の準備Derby Network Server を起動 インタラクティブ SQL プロセッサ ij を起動 をすべて済ませたら,試しに以下のように操作してみよう.

データベースの作成

ij>のプロンプトに対して,以下のようにタイプしてEnterキーを押す.シングルクォートや最後のセミコロンを忘れずに.

ij> connect 'jdbc:derby:myDB;create=true';

すると,インタラクティブSQLプロセッサ ij は Derby Network Serverと接続する.指定したデータベース myDB はまだないので,自動的に新規作成される.

プロジェクトのトップディレクトリの下に,myDBという名前のディレクトリが作成されているはずである.EclipseのPackage Explorer view (エキスプローラ風) で確かめてみよう(もし見当たらないようだったら、プロジェクトを右クリックして Refesh).このディレクトリの中に作られるファイルがデータベースの実体である.

テーブルの作成

できたばかりのデータベースは(基本的に)空っぽなので,まずはデータを入れるためのテーブルを作成しよう。

ij> create table 酒(
名前 varchar(10) primary key,
製造元 varchar(10)
);
0 rows inserted/updated/deleted

このように文の途中でEnterキーを押して改行してもかまわない。文末のセミコロン;が読み込まれるまで、一続きの文であると解釈される. また、日本語の文字(漢字・かな・カナ)のテーブルやカラムを作ることもできる。

うまくテーブルができたかどうか確かめてみよう。

ij> show tables;
TABLE_SCHEM         |TABLE_NAME                    |REMARKS             
------------------------------------------------------------------------
SYS                 |SYSALIASES                    |                    
SYS                 |SYSCHECKS                     |                    
                     <<< 中略 >>>
SYSIBM              |SYSDUMMY1                     |                    
APP                 |酒                             |                    

20 rows selected

このように定義されているテーブルのリストを見ることができる.TABLE_SCHEM (テーブルスキーマ) がSYSで始まるものは,システムが管理しているテーブルである. 最後の行に先ほど create table文で作成した酒テーブルができている.

次のようにすると酒テーブルに存在するカラムを調べることができる.

ij> describe 酒;
COLUMN_NAME         |TYPE_NAME|DEC&|NUM&|COLUM&|COLUMN_DEF|CHAR_OCTE&|IS_NULL&
------------------------------------------------------------------------------
名前                  |VARCHAR  |NULL|NULL|10    |NULL      |20        |NO      
製造元                 |VARCHAR  |NULL|NULL|10    |NULL      |20        |YES     

2 rows selected

データ操作

この酒テーブルにデータを入れてみよう.

ij> insert into 酒 values
('久保田千寿', '朝日酒造'),
('久保田万寿', '朝日酒造');
2 rows inserted/updated/deleted

このように,文字列定数はシングルクォートで囲う.

select文で確認してみよう.

ij> select * from 酒;
名前        |製造元       
---------------------
久保田千寿     |朝日酒造      
久保田万寿     |朝日酒造      

2 rows selected

主なコマンド

Apache Derby固有の主なコマンドを紹介する.

ij> のプロンプトに対して,ここに紹介するコマンドや,一般のSQL文を入力することができる.

データベースに接続する

 connect URL; 

例) データベース "myDB" を新規作成して接続する。

 connect 'jdbc:derby:myDB;create=true'; 

URL はシングルクォート (') で囲む。create=true をつけると,データベースがなければ新規作成する.

ij を終了する

 exit; 

ヘルプを表示する

 help; 

ファイルを実行する

 run FILE; 

例) ファイル "foo.sql" を実行する。

 run 'foo.sql';

ファイル名はシングルクォート (') で囲む

終わり方

  • ij を終了する。
    • ij の Console view のストップボタン()をクリック。
    • Console を右クリック ⇒ Remove All Terminated
  • Network Server を終了する。
    • Network Server の Console view のストップボタン()をクリック。
    • Console を右クリック ⇒ Remove All Terminated

SQL言語リファレンス

Apache Derby のマニュアル http://db.apache.org/derby/docs/10.2/ref/ の SQL language reference の章に使用可能な SQL の文法が記されている.(10.2 は2006年11月現在の最新バージョン番号なので,もっと新しいものがあるかもしれない).

参考文献

SQL の解説付きのページリスト