ホーム - データベース - データの変更

データの変更

データの変更のためのクエリーには「INSERT文」「UPDATE文」「DELETE文」があります。これらのクエリーは各テーブル毎に保存されているデータレコード(データ行)を操作するための構文であり、レコード操作の対象となるテーブルは1クエリーに付き1テーブルとなります。複数のテーブルのデータを変更する場合はテーブルの数だけクエリーを発行します。それではこれより各構文について説明していきます。

INSERT文

INSERT文はデータレコードをテーブルに新規追加するための構文です。レコードを追加するには各項目の値を1項目(カラム)ずつ指定して1行(レコード)ずつ追加する方法とDB中の別のデータをSELECT文を用いて一括追加する方法があります。まずは基本となる1レコードずつ追加する方法を見ていきます。構文は下記になります。
  INSERT INTO <テーブル名> (<対象項目リスト>) VALUES (<値リスト>);
				
テーブル名には対象となるひとつのテーブルを指定します。また対象項目リストについては対象となるテーブルが一つだけなのでSELECT文のように項目名にテーブル名を付ける必要はありません。ですので項目名のみをカンマで区切って記述します。値のリストには対象項目リストと同じ並び順で各項目に該当する値のリストを記述します。例えば売上DBの商品マスタに新しい商品を追加する場合は下記のようになります。
  INSERT INTO 商品マスタ (商品コード, 商品名, 単価)
    VALUES ('00004', 'ボールペン', 80);
				
また、SELECT文を使った場合の構文は下記になります。
  INSERT INTO <テーブル名> (<対象項目リスト>)
    SELECT <必要項目リスト> FROM <参照テーブル>・・・;
				
上記の場合においても、INSERT文での対象項目の並びとSELECT文での項目の並びは同じになるように記述して下さい。

UPDATE文

UPDATE文は既存のレコードのデータを更新するための構文です。構文は下記のようになります。
  UPDATE <テーブル名>
    SET <項目名1> = <値1>
      [, <項目名2> = <値2>・・・]
    [WHERE <条件>];
				
SET句では「対象項目名」= 「値」の組み合わせをカンマで区切りながら記述します。WHERE句は記述しないこともできますが、その場合は対象のテーブルの全てのレコードを更新してしまいますので、実際にUPDATE文を使用する際にはほぼ必要です。多くの場合はテーブルの主キーを更新対象レコードを絞る条件に使います。例えば売上DBの商品マスタのレコードを更新する場合は下記のようになります。
  UPDATE 商品マスタ
    SET 商品名 = 'サインペン', 単価 = 90
    WHERE 商品コード = '00004';
				

DELETE文

DETETE文は既存のレコードを削除するための構文です。構文は下記のようになります。
  DELETE FROM <テーブル名> [WHERE <条件>];
				
UPDATE文と同様、WHERE句を指定しないと対象テーブルの全レコードが削除されますので、実質にDELETE文を使用する際にはWHERE句で削除対象条件を指定します。例えば売上DBの商品マスタのレコードの削除については下記のとおりです。
  DELETE FROM 商品マスタ WHERE 商品コード = '00004';
				
DELETE文やUPDATE文は条件記述を間違えると影響範囲が広くなりデータ修復が不可能になってしまう場合もありますので、発行の際には充分に注意して使うようにしましょう。