DatabaseLink チュートリアル

生SQLを使ったデータの挿入

SQLコマンドINSERTは,データベースにデータを挿入するときに使います.これはデータの挿入に記載のようにSQLInsertでもできます.
このチュートリアルの例を実際に試してみて,記載の通りに動作しなかった場合は,データベースの例の使用で述べているようにDatabaseExamples`パッケージを使ってデータベースをもとの状態に戻す必要があるかもしれません.
データを挿入すると,SQLExecuteの結果はクエリの影響を受ける行数を示す整数となります.
以下にデータを挿入するする例を示します.DatabaseLink をロードし,demo データベースに接続します.
In[1]:=
Click for copyable input
生SQLを使った表の作成に記載のように,表ADDRESSESMAILER が作成されます.
In[3]:=
Click for copyable input
SQL文を使って表ADDRESSES に行を挿入する例です.
In[5]:=
Click for copyable input
Out[5]=
SELECT文で,表にデータが加えられたことを確認します.
In[6]:=
Click for copyable input
Out[6]=
USERNAME は主キーとなります.つまりこれは重複してはなりません.同じデータを再び挿入しようとするとエラーが生じ,結果は$Failedとなります.
In[7]:=
Click for copyable input
Out[7]=
次はパラメータUSERNAME を重複しないようにします.ADDRESSCITYZIPCODE の項目はそのままです.これらも重複してはならないので,エラーが生じます.
In[8]:=
Click for copyable input
Out[8]=
ADDRESSCITYZIPCODE が重複しないように値を挿入します.
In[9]:=
Click for copyable input
Out[9]=
SELECT文で表にデータが加えられたことを示します.
In[10]:=
Click for copyable input
Out[10]=
データの挿入には準備文の方が役立つことがあります.また,SQLArgumentを使うと準備文中の引数領域の数が減って便利であることもあります.SQLArgumentについてはSQLスタイルのクエリにおける引数の列をご覧ください.
In[11]:=
Click for copyable input
Out[11]=
SELECT文で表にデータが加えられたことを確認します.
In[12]:=
Click for copyable input
Out[12]=
識別列は自動的に値が増加されるため値を必要としないので,大変便利です.これらは表の主キーでもあります.つまり一意的に行を識別するのです.識別値はSQL文ではNullと指定しなければなりません.
In[13]:=
Click for copyable input
Out[13]=
In[14]:=
Click for copyable input
Out[14]=
SELECT文で表にデータが加えられたことを確かめます.
In[15]:=
Click for copyable input
Out[15]=
USERNAME は外部キーなので,その値はADDRESSES に存在しなければなりません.次の例は,user4ADDRESSES に存在しないために失敗します.
In[16]:=
Click for copyable input
Out[16]=
SENDMAILER はデフォルト値を持っているため,データの挿入時には必要ありません.
In[17]:=
Click for copyable input
Out[17]=
SELECT文でデータベースにデータが存在し,値を結び付けていることを確認します.
In[18]:=
Click for copyable input
Out[18]//TableForm=
表を削除し,接続を閉じます.
In[19]:=
Click for copyable input