DATABASELINK チュートリアル

生SQLを使ったデータの挿入
This feature is not supported on the Wolfram Cloud.

SQLコマンドINSERTは,データベースにデータを挿入するときに使う.これは「データの挿入」に記載のようにWolfram言語コマンドのSQLInsertでもできる.

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

データを挿入すると,SQLExecuteの結果はクエリの影響を受ける行数を示す整数となる.

以下にデータを挿入するする例を示す.DatabaseLink をロードし,demoデータベースに接続する.

In[1]:=
Click for copyable input

生SQLを使った表の作成」に記載のように,表ADDRESSES,MAILERが作成される.

In[2]:=
Click for copyable input

SQL文を使って表ADDRESSESに行を挿入する例である.

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

SELECT文で,表にデータが加えられたことを確認する.

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

列USERNAMEは主キーとなる.つまりこれは重複してはならない.同じデータを再び挿入しようとするとエラーが生じ,結果は$Failedとなる.

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

次はパラメータUSERNAMEを重複しないようにする.ADDRESS,CITY,ZIPCODEの項目はそのままである.これらも重複してはならないので,エラーが生じる.

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

ADDRESS,CITY,ZIPCODEが重複しないように値を挿入する.

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

SELECT文で表にデータが加えられたことを示す.

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

データの挿入には準備文の方が役立つことがある.また,SQLArgumentを使うと準備文中の引数領域の数が減って便利であることもある.SQLArgumentについては「SQLExecute:SQLスタイルのクエリにおける引数の列」をご覧いただきたい.

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

SELECT文で表にデータが加えられたことを確認する.

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

識別列は自動的に値が増加されるため値を必要としないので,大変便利である.これらは表の主キーでもある.つまり一意的に行を識別するのである.識別値はSQL文ではNullと指定しなければならない.

In[12]:=
Click for copyable input
Out[12]=
In[13]:=
Click for copyable input
Out[13]=

SELECT文で表にデータが加えられたことを確かめる.

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

USERNAMEは外部キーなので,その値はADDRESSESに存在しなければならない.次の例は,user4 が ADDRESSESに存在しないために失敗する.

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

列SENDMAILERはデフォルト値を持っているため,データの挿入時には必要ない.

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

SELECT文でデータベースにデータが存在し,値を結び付けていることを確認する.

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

表を削除し,接続を閉じる.

In[18]:=
Click for copyable input