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 の解説付きのページリスト
- SQL講座 (日本語)
- SQL tutorial (英語)
- SQL Reference and Examples (英語)
- データベース設計/SQLの講義資料 (日本語)
