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