Java DB を使う2

コマンドラインツールを使ってみる。
ij.ksh というツールでDBを操作する。まずは実行。

 $ $JAVA_HOME/db/frameworks/embedded/bin/ij.ksh
ij バージョン 10.2
ij>

そして、困ったときのためにヘルプを表示。
メッセージが日本語に対応しているところが良いですね。SQL関連が出てこないのは残念。

ij>help;
 
 サポートされるコマンドは以下の通りです。
 
  PROTOCOL 'JDBC protocol' [ AS ident ];
                               -- デフォルトまたは名前付きプロトコルを設定する
  DRIVER 'class for driver';   -- 名前付きクラスをロードする
  CONNECT 'url for database' [ PROTOCOL namedProtocol ] [ AS connectionName ];
                               -- データベース URL に接続し、
                               -- 場合により ID を割り振る
  SET CONNECTION connectionName; -- 指定された接続に切り替える
  SHOW CONNECTIONS;            -- すべての接続をリストする
  AUTOCOMMIT [ ON | OFF ];     -- 接続に対して自動コミットを設定する
  DISCONNECT [ CURRENT | connectionName | ALL ];
                               -- 現行、名前付き、またはすべての接続をドロップする
                               -- デフォルトは CURRENT
 
  COMMIT;                      -- 現行トランザクションをコミットする
  ROLLBACK;                    -- 現行トランザクションロールバックする

 
  PREPARE name AS 'SQL-J text'; -- SQL-J テキストを準備する
  EXECUTE { name | 'SQL-J text' } [ USING { name | 'SQL-J text' } ] ;
                               -- USING 結果セット行からのパラメーター値
                               -- を使ってステートメントを実行する
  REMOVE name;                 -- 指定された準備済みステートメントを除去する
 
  RUN 'filename';              -- 指定したファイルからコマンドを実行する
 
  ELAPSEDTIME [ ON | OFF ];    -- ij に対する経過時間モードを設定する
  MAXIMUMDISPLAYWIDTH integerValue;
                               -- 各列の最大表示幅を
                               -- integerValue に設定する
 
  ASYNC name 'SQL-J text';     -- 別のスレッドでコマンドを実行する
  WAIT FOR name;               -- ASYNC'd コマンドの結果を待つ
 
  GET [SCROLL INSENSITIVE] CURSOR name AS 'SQL-J query';
                               -- 照会にカーソル (JDBC 結果セット) を置く
                               -- SCROLL カーソルは、JDBC 2.0 以上でのみ
                               -- 使用可能です。
                               -- (カーソル・スクロール型は JDBC 1.X では無視されます。) 
  NEXT name;                   -- 指定したカーソルから次の行を取得する
  FIRST name;                  -- 指定したスクロール・カーソルから最初の行を取得する
  LAST name;                   -- 指定したスクロール・カーソルから最後の行を取得する
  PREVIOUS name;               -- 指定したスクロール・カーソルから直前の行を取得する
  ABSOLUTE integer name;       -- 指定したスクロール・カーソルを絶対行番号に位置付ける
                               -- (負の数字は、最後の行から位置を示します。) 
  RELATIVE integer name;       -- 指定したスクロール・カーソルを現行行に相対で位置付ける
                               -- (整数は行の数)
  AFTER LAST name;             -- 指定したスクロール・カーソルを最終行の後に位置付ける
  BEFORE FIRST name;           -- 指定したスクロール・カーソルを先頭行の前に位置付ける
  GETCURRENTROWNUMBER name;    -- 指定したスクロール・カーソルの現行位置の行番号を戻す
                               -- (カーソルが行に位置付けられていないと、0 が戻されます。) 
  CLOSE name;                  -- 指定したカーソルをクローズする
  LOCALIZEDDISPLAY [ ON | OFF ];
                               -- ロケール依存データの表記を制御する
 
  EXIT;                        -- ij を終了する
  HELP;                        -- このメッセージを表示する
 
 認識されないコマンドはすべて、潜在的SQL-J コマンドとして扱われ、直接実行されます。

で、データベースに接続するには、

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

とする。"create=true"を付けておけばデータベースを作ってくれる。

どんなSQL文が使えるかは、Derby のサイトに行くとよい。
http://db.apache.org/derby/docs/10.2/ref/