DATABASELINK チュートリアル

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

生SQLコマンドSELECTは,データベースのデータを選択して返すときに使う.これは,「データの選択」に記載のように,Mathematica コマンドSQLSelectを使ってもできる.

このチュートリアルの例を実際に試してみて,記載の通りに動作しなかった場合は,「データベースの例の使用」で述べているようにパッケージを使ってデータベースをもとの状態に戻す必要があるかもしれない.

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引数はの場所に,第2引数はの場所に置かれる.

In[4]:=
Click for copyable input
Out[4]=

列と表の名前はそれぞれSQLColumnSQLTableで囲まなければならない.これにより,列と表の名前が文字列でないことをはっきりさせる.次の例では,表ROYSCHEDの中で列TITLE_IDの値がである列ROYALTYの要素を選択する.

In[5]:=
Click for copyable input
Out[5]=

準備文に引数の列を与えたい場合は,SQLArgumentを使う.これについては「SQLExecute:SQLスタイルのクエリにおける引数の列」で述べる.

In[6]:=
Click for copyable input
Out[6]=

多くのデータベースには,SELECT操作の結果に適用できる関数がある.一般的なものに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[18]:=
Click for copyable input
New to Mathematica? Find your learning path »
Have a question? Ask support »