DatabaseLink チュートリアル

Getting Started

このチュートリアルの使い方

このチュートリアルでは,DatabaseLink の機能の概要と,どのように使い始めるかについての提案を取り上げます.これには軽量のデータベースHSQLDBを使用しますが,これはDatabaseLink の一部としてインストールされます.これを使うと,データベースを別途インストールしなくてもドキュメント内の例題を試すことができます.別のDatabaseLink チュートリアルに詳しいリファレンス情報があります.
DatabaseLink には,データベース操作のための2種類のインターフェースが用意されています.ひとつはコマンドラインインターフェースで,プログラム内でデータベースを使うときに,より柔軟で便利です.もうひとつはグラフィカルインターフェースで,こちらは使用が簡単です.どちらのインターフェースについてもここで取り上げます.
このセクションの例題を試し終えたら,データベースの例の使用に記載のDatabaseExamples`パッケージを使って例題データベースをもとの状態に戻した方がよいでしょう.

コマンドラインインターフェース

はじめに

コマンドラインインターフェースはパワフルかつ柔軟なインターフェースで,特にデータベースの機能を利用するプログラムを書くのに適しています.このセクションでは,例題データベースを使って種々の操作について述べます.
このセクションの例を実際に試してみて,記載の通りに動作しなかった場合は,データベースの例の使用で述べているようにDatabaseExamples`パッケージを使ってデータベースをもとの状態に戻す必要があるかもしれません.

パッケージのロード

DatabaseLinkMathematica のアドオンアプリケーションです.関数を使う前に,以下のようにしてパッケージをロードする必要があります.
In[1]:=
Click for copyable input

データベースへの接続

データベースへの接続についての詳細はデータベース接続をご覧ください.コマンドラインメソッドでは,データベースを使用する際に使えるハンドルを返す関数OpenSQLConnectionを使います.次の式を評価すると,付属の例題データベースへの接続を開始します.
このセクションの例を実際に試してみて,記載の通りに動作しなかった場合は,データベースの例の使用で述べているようにDatabaseExamples`パッケージを使ってデータベースをもとの状態に戻す必要があるかもしれません.
In[2]:=
Click for copyable input
Out[2]=
引数を与えずにOpenSQLConnectionでGUIを開いてデータベースに接続することもできます.Connection Toolが現れますので,接続を開始するか,操作を継続する前にツールをキャンセルしてください.
In[3]:=
Click for copyable input
exampleデータベースに接続するには,Connection Toolが使えます.データベースへの接続についての詳細情報はデータベース接続をご覧ください.

データの取出し

リレーショナルデータベースは表の集合で構成されています.各表は一般に列と呼ばれる種々のカテゴリのデータからなります.表の各行には種々のカテゴリのデータが含まれています.データベースアプリケーションには,データのクエリ,挿入,更新,削除等の機能をサポートする,データ管理のための関数が含まれています.
表はリレーショナルデータベースの基盤で,それらを簡単にリストする方法が必要です.これは,次のようにSQLTablesコマンドを使って行えます.
In[4]:=
Click for copyable input
Out[4]=
表の特定の列の情報は,SQLColumnsコマンドで調べることができます.表SAMPLETABLE1 の列についての情報を得る例を以下に示します.
In[5]:=
Click for copyable input
Out[5]=
以下のようにSQLSelectコマンドを実行すると,表SAMPLETABLE1 のデータが取り出せます.
In[6]:=
Click for copyable input
Out[6]=
データベースクエリの結果はMathematica リストとなり,このリストはあらゆるMathematica コマンドで使えます.次の例では,各行の最後の要素をプロットします.
In[7]:=
Click for copyable input
Out[7]=
次は,表SALES からデータを取り出しますが,その際に列見出しを加え,結果を表形式で出力します.
In[8]:=
Click for copyable input
Out[8]//TableForm=
DatabaseLink を使うと,SQLコマンドをそのまま入力することもできます.これはSQLについてすでに詳しく,新しく他の言語を学びたくない場合に便利です.次の例では,表SALES からすべてのデータを取り出します.
In[9]:=
Click for copyable input
Out[9]=
データの取出しに関する詳細情報は,データの選択をご覧ください.

Inserting Data

SQLInsertコマンドを使うと,表にデータを挿入することができます.例として,表SAMPLETABLE1 に新しい行を追加してみます.
In[10]:=
Click for copyable input
Out[10]=
加えられた行を見てみます.
In[11]:=
Click for copyable input
Out[11]//TableForm=
SQLコマンドをそのまま使ってデータをさらに挿入することもできます.このとき,挿入する文字列(次の例ではDay7)にはシングルクォート文字「'」を使用してください.ダブルクォート文字「"」も使えますが,ダブルクォートの場合はMathematica の文字列エスケープ文字であるバックスラッシュ「\」を前に付けなければなりません.
In[12]:=
Click for copyable input
Out[12]=
SQLコマンドをそのまま使用するもうひとつの例として,プレースホルダーを使って引数の場所を示し,SQLExecuteの引数として実際の引数を含んでいるリストを渡します.この方法はコマンドを形成するために文字列を連ねる必要がないので便利です.
In[13]:=
Click for copyable input
Out[13]=
現在の表のデータを示します.
In[14]:=
Click for copyable input
Out[14]=
データの挿入に関する詳細情報は,データの挿入をご覧ください.

データの更新

SQLUpdateコマンドを使うと,表のデータを更新することができます.これはデータの一部のみを変更するために,よく条件と組み合せて使われます.次の例は列VALUE の8より大きい項目をすべて7に設定します.
In[15]:=
Click for copyable input
Out[15]=
加えられた変更を見てみます.
In[16]:=
Click for copyable input
Out[16]//TableForm=
データの更新にはSQLコマンドも使えます.次の例ではVALUE が6以上の項目に対応する行をすべて7に設定します.
In[17]:=
Click for copyable input
Out[17]=
In[18]:=
Click for copyable input
Out[18]=
データの更新に関する詳細情報は,データの更新をご覧ください.

データの削除

SQLDeleteコマンドを使うと,表のデータを削除することができます.これはデータの一部のみを変更するために,よく条件と組み合せて使われます.次の例はENTRY の成分が7以上の行をすべて削除します.
In[19]:=
Click for copyable input
Out[19]=
加えられた変更を見てみます.
In[20]:=
Click for copyable input
Out[20]//TableForm=
データの削除にはSQLコマンドも使えます.次の例ではVALUE が5.7より大きい項目をすべて削除します.
In[21]:=
Click for copyable input
Out[21]=
データベースに残った行は1行だけです.
In[22]:=
Click for copyable input
Out[22]=
データの削除に関する詳細情報は,データの削除をご覧ください

バッチコマンド

1つのコマンドを何度も繰り返して使用する場合は,繰り返す引数をリストで指定して行えます.同じコマンドをこのようにして実行すると,各コマンドを別々に実行するよりも格段に速くなります.
次のコマンドは2行挿入します.
In[23]:=
Click for copyable input
Out[23]=
次に,SQLコマンドを使ってさらに2行挿入します.
In[24]:=
Click for copyable input
Out[24]=
挿入の結果は次のようになります.
In[25]:=
Click for copyable input
Out[25]=

接続の解除

接続を使い終ったら,それを閉じることができます.
In[26]:=
Click for copyable input
接続についての詳細情報はデータベース接続をご覧ください.過去にデータベースに変更を加えており,それをもとに戻したい場合は,データベースの例の使用に記載のようにDatabaseExamples`パッケージをお使いください.

Database Explorer

Database Explorerは,データベースの機能を使用するためのグラフィカルインターフェースです.これはDatabaseLink をロードし,コマンドDatabaseExplorer[]を実行すると立ち上がります.
In[27]:=
Click for copyable input
Out[28]=
Database Explorerが開いたら,お使いのシステム用に設定済みの他のデータベースに接続できます.新しい接続を開始することもできます.データベースに接続すると,次の図のように表と列が表示されます.
1.gif

Resultタブをクリックすると,次の図のようにデータベースのデータが見られます.
2.gif

Database Explorerは,より複雑なクエリの作成,クエリの保存,クエリの結果のレポートの作成(Mathematica ノートブックとして保存される)等,多くの機能をサポートしています.これらについてはDatabase Explorerをご覧ください.