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