応用編の内容
データベースの変更・更新
基本編では、データベースの作成から、テーブルの生成、そしてそのデータの検索について説明してきました。これで、基本的なデータベースの操作の基本は一通りわかったと言えるでしょう。
しかし、データベースの長期にわたって使用されるものです。新たにデータが追加されたり、削除・更新がされます。応用編では、そういったデータベースの維持・更新に必要な内容について学習していくことにします。
第一弾として、すでにできているテーブルのデータを削除・更新する方法について学習しますが、その前にDCL命令であるCOMMITとROLLBACKについて説明します。
DCL命令
2日目で説明したとおり、SQL命令の中には、DCL命令である、COMMITとROLLBACKがあります。以下、それぞれのコマンドについて説明します。
COMMIT
COMMITは、コミットと言い、とランザクションに発行した命令を確定します。書式は以下の通りです。
コミット命令ROLLBACK
ROLLBACKは、コミットされていない命令の取り消しを行う命令です。
ロールバック命令コミットされていない命令は、このコマンドでキャンセルできます。
DBViewerでのコミットモードの変更
続いて、DBViewerの自動コミットモードと、手動コミットモードの使い分けについて説明します。通常、とくに変更をしなければ、起動時にDBViewerの下部にある「SQL実行・ビュー」の部分は、以下のようになっています。(図1-1.)
図1-1.SQL実行・ビューここに出ている、矢印の部分にあるのが、コミットモードを変更するためのボタンです。起動時には、Aとなっています(図1-2.)。これは、自動コミットモードであり、発行したSQL文は、自動的にコミットされます。このボタンを押すと、Mとなります(図1-3.)。これが手動コミットモードで、このボタンを押すことによって、モードは入れ替わります。(表4-1.)
表4-1:コミットモード変換ボタンボタン | 意味 | |
---|---|---|
図1-2.自動コミットモード | 発行したSQL命令が自動的にコミットされる。 | |
図1-3.手動コミットモード | 発行したSQL命令はコミットされない。 |
ここでは、このボタンを押して、手動コミットモードに変更します。それにより、テーブル内容への変更をリセットすることができるようにします。
データの削除
DELETE
テーブルに格納されているデータを削除するにはDELETE文を使います。基本となる書式は次の通りです。
DELETEの書式①これにより、指定のデータベース内にある指定のテーブルに対し、指定したカラムに新しい値を設定します。データベース名は、useで指定されている場合は省略可能です。そのような場合、以下のような表現になります。
DELETEの書式②これにより、指定のテーブルに含まれるデータを削除することが出来ます。どのデータを削除するのかはWHERE句を使って指定します。なお、WHERE条件は、SELECTの場合と同じ条件を使用することができます。WHERE句を省略すると、テーブル内の全てのデータが削除されます。
サンプル
では実際に、テーブルデータを削除してみましょう。3日目で使用した、studentテーブルのデータを変更してみましょう。まずは、「SELECT * FROM student;」を実行して、再びstudentテーブルを表示しましょう。(図1-4.)
図1-4.studentテーブル(再掲)まずは、以下のSQL文を実行してみてください。
Sampleex101.sql:DELETEの実行例①DELETE FROM student WHERE grade = 1;
これを実行すると、gradeカラムの値が1のデータを削除されます。(図1-5.)
図1-5.DELETEの実行例①の実行結果続いて、DBViewerが手動コミットモードになっていることを確認して、以下のSQL文を実行してみてください。
Sampleex102.sql:DELETEの実行例②DELETE FROM student WHERE id > 3000;
これを実行すると、②idカラムの値が3000以上のデータを削除されます。(図1-6.)
図1-6.DELETEの実行例②の実行結果最後に、テーブルのデータをすべて削除する方法を紹介します。以下のSQL文を実行してみてください。
Sampleex103.sql:DELETEの実行例③DELETE FROM student;
再び、studentテーブルを見てみましょう。すると、結果として何も出力されません。つまり、studentテーブルのデータがこれによって全て削除されるのです。(図1-7.)
図1-7.DELETEの実行例③の実行結果以上で、DELETEの説明は終了します。ここで、ROLLBACK命令を発行し、studentテーブルのデータを元に戻しておいてください。続いて、UPDATE命令について説明します。
データの更新
UPDATE命令
テーブルに格納されているデータを更新するにはUPDATE文を使います。基本となる書式は次の通りです。
UPDATEの書式①指定のデータベース内にある指定のテーブルに対し、指定したカラムに新しい値を設定します。データベース名は、useで指定されている場合は省略可能です。そのような場合、以下のような表現になります。
UPDATEの書式②これにより数値や文字列の値、又は関数や式などを指定したカラムに新しい値として格納します。
サンプル
今度は、テーブルのデータを変更してみましょう。削除の場合と同様、3日目で使用した、studentテーブルを変更してみましょう。まずは、「SELECT * FROM student;」を実行して、ROLLBACKでデータが復活したことを確認しましょう。(図1-4.)
図1-4.studentテーブル(再掲)では、実際にUPDATE文のサンプルを実行してみましょう。まずは、以下のSQL文を実行してみてください。
Sampleex104.sql:UPDATEの実行例①UPDATE student SET name="山口太郎" WHERE id = 1001;
これを実行すると、idカラムの値が1001のデータのnameカラムの値を”山口太郎”に設定されます。(図1-8.)
図1-8.UPDATEの実行例①の実行結果続いて、DBViewerが手動コミットモードになっていることを確認して、以下のSQL文を実行してみてください。
Sampleex105.sql:UPDATEの実行例②UPDATE student SET name='学生', grade = 0;
これを実行すると、全てのデータのnameカラムの値を「学生」にし、gradeカラムの値を0に設定されます。(図1-9.)
図1-9.UPDATEの実行例②の実行結果以上で、UPDATEの説明は終了します。再びROLLBACK命令を発行し、studentテーブルのデータを元に戻しておいてください。