DatabaseLink チュートリアル

生SQLを使ったデータの選択

生SQLコマンドSELECTは,データベースのデータを選択して返すときに使います.これは,データの選択に記載のように,Mathematica コマンドSQLSelectを使ってもできます.
このチュートリアルの例を実際に試してみて,記載の通りに動作しなかった場合は,データベースの例の使用で述べているようにDatabaseExamples`パッケージを使ってデータベースをもとの状態に戻す必要があるかもしれません.
DatabaseLink をロードし,publisher データベースに接続します.
In[1]:=
Click for copyable input
ROYSCHED の中から,列ROYALTY の要素が0.11から0.12までであるデータを取り出します.
In[3]:=
Click for copyable input
Out[3]=
次も同じSELECT文を実行する例ですが,今度は準備文を使います.文の引数はSQLExecuteコマンドの第3引数として与えます.第1引数は`1`の場所に,第2引数は`2`の場所に置かれます.
In[4]:=
Click for copyable input
Out[4]=
列と表の名前はそれぞれSQLColumnSQLTableで囲まなければなりません.これにより,列と表の名前が文字列でないことをはっきりさせます.次の例では,表ROYSCHED の中で列TITLE_ID の値がBS1011である列ROYALTY の要素を選択します.
In[5]:=
Click for copyable input
Out[5]=
準備文に引数の列を与えたい場合は,SQLArgumentを使います.これについてはSQLスタイルのクエリにおける引数の列で述べます.
In[6]:=
Click for copyable input
Out[6]=
多くのデータベースには,選択操作の結果に適用できる関数があります.一般的なものにCOUNT,MIN,MAX,SUM,AVGがあります.お使いのデータベースに付属のドキュメントに,使用可能な関数についての詳細が記載されています.このうちのいくつかについて以下に例示します.
In[7]:=
Click for copyable input
Out[7]=
In[8]:=
Click for copyable input
Out[8]=
多くのデータベースでは,結果に+,-,*,/等の数学関数が適用できます.
In[9]:=
Click for copyable input
Out[9]=
In[10]:=
Click for copyable input
Out[10]=
In[11]:=
Click for copyable input
Out[11]=
重複しない値のみを選択することもできます.
In[12]:=
Click for copyable input
Out[12]=
値をグループ分けすることもできます.
In[13]:=
Click for copyable input
Out[13]//TableForm=
多くのデータベースは,任意範囲の結果の取出しもサポートしています.
In[14]:=
Click for copyable input
Out[14]=
In[15]:=
Click for copyable input
Out[15]=
INNER JOINとOUTER JOINを使ったより複雑なSELECT文をFROM節で使って,2つの表の記録を結合することができます.
In[16]:=
Click for copyable input
Out[16]=
In[17]:=
Click for copyable input
Out[17]//TableForm=
接続を閉じます.
In[42]:=
Click for copyable input