生SQLを使ったデータの削除
生SQLコマンドDELETEは,データベースからデータを削除するときに使う.これは「データの削除」に記載のように,Mathematica コマンドSQLDeleteでもできる.
このチュートリアルの例を実際に試してみて,記載の通りに動作しなかった場合は,「データベースの例の使用」で述べているように
パッケージを使ってデータベースをもとの状態に戻す必要があるかもしれない.
データを削除する際,SQLExecuteの結果はクエリの影響を受ける行数を示す整数となる.
以下にデータの削除の例を示す.DatabaseLink をロードし,demoデータベースに接続する.
「生SQLを使った表の作成」の例で述べたように,表ADDRESSES,MAILERが作られる.
表ADDRESSESの内容は次のようになっている.
| Out[7]= |  |
表MAILERの内容は次のようになっている.
| Out[8]= |  |
以下は表MAILERの行を削除するSQL文を実行する.列SENDMAILERの値が0またはFalseである行をすべて削除する.削除文は列の値に応じた条件を使って作成できる.1行削除されるため,結果は1となる.
| Out[9]= |  |
SELECT文はテーブルでデータが変更されたことを検証する.
| Out[10]= |  |
準備文を使って,データベース内のデータを更新するSQL文を動的に作ることができる.このSQL文は簡単な Mathematica 関数と結合できる.次の例は特定のユーザの住所を削除する.
| Out[12]= |  |
表のデータが変更されたことをSELECT文で確認する.
| Out[13]= |  |
表の値に対する制限と同じ制限が,データの削除にも適用される.したがって,表MAILERの項目が参照しているADDRESSの値を削除しようとすると,エラーが返される.
| Out[14]= |  |
表を削除して接続を閉じる.