DATABASELINK チュートリアル

SQLExecute

SQLExecuteを使うと,SQL文を実行することができる.SQL文はデータの選択,表の作成,データの挿入,データの更新,データの削除,表の削除に使える.SQLExecuteで使用する文は,すべての引数を含むことのできる文字列である.しかし引数を別々に与えて準備文にすることもできる.SQLExecuteは異なる引数の準備文のバッチでの実行に使用することもできる.これについては「バッチ操作」に記載されている.

SQLExecute[conn,statement,opts...]SQL文を実行する
SQLExecute[conn,statement,{args...},opts...]準備文に引数を与えて実行する
SQLExecute[conn,statement,{{args...}...},opts...]準備文に異なる引数を与えてバッチで実行する

SQL文の実行

次のセクションでは,異なるタイプの操作を実行するSQL文の使い方について述べる.

SQLExecuteには数多くのオプションが使える.

オプション名
デフォルト値
"GetAsStrings"False結果を文字列として返す
"MaxRows"Automatic結果の最大行数を設定する
"ShowColumnHeadings"False結果とともに見出しを返すかどうか
"Timeout"Automaticクエリのタイムアウトを設定する

SQLExecuteのオプション

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

In[1]:=
Click for copyable input

オプションを使うと,データを Mathematica 型に変換しないで取り出すことができる.

In[3]:=
Click for copyable input
Out[3]//InputForm=

オプションを使うと,返される行の数が制限できる.

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

オプションは列見出し付きの結果を求めるときに使う.

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

オプションを使うと,実行に時間がかかりすぎるクエリをキャンセルすることができる.

接続を閉じる.

In[6]:=
Click for copyable input

SQLスタイルのクエリにおける引数の列

複数の値の列を保管しているSQL文で引数が1つだけ必要なときは,SQLArgumentが使える.これは多くの列を持つ表の選択と挿入に特に便利である.選択の際は,複数の表と列が動的に選択でき,挿入の際は複数の列の値が動的に指定できる.

SQLArgumentコマンドへの引数の列

引数の列

これを例示するために,DatabaseLink をロードし,publisherデータベースに接続する.

In[7]:=
Click for copyable input

SQLArgumentを使って選択クエリが実行できます.以下の文で2つの引数を引数としてどのように参照しているかに注目されたい.この方法により個々の引数に番号を付ける必要がなくなるため,文が簡単になる.

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

接続を閉じる.

In[10]:=
Click for copyable input

SQLArgumentMathematica ベースのクエリではサポートされていないことにも注意されたい.

New to Mathematica? Find your learning path »
Have a question? Ask support »