ITサポート

セミナー

会員特典

その他

過去のコラム等

Twitter

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ■第30回 データの追加・更新・削除 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━  前回は、データを取り出すための基本操作についてお話しました。  「射影」、「選択」、「結合」は基本中の基本ですので、しっかり理解して  おきたいですね。  今回は、データを追加・更新・削除についてお話します。  データを取り出す時と同じく、SQLを使用して操作します。  実例を通して紹介しますので、以下のサンプルテーブルをご覧ください。  ・商品  ----------------------------------  | 商品コード | 商品名 | 単価 |  -------------+------------+-------  | A001 | 抹茶ケーキ | 200 |  -------------+------------+-------  | A002 | モンブラン | 250 |  -------------+------------+-------  | B001 | クッキー | 80 |  -------------+------------+-------  | B002 | ビスケット | 70 |  ----------------------------------  ・商品候補  ----------------------------------  | 商品コード | 商品名 | 単価 |  -------------+------------+-------  | A003 | エクレア | 150 |  ---------------------------------- ●行の追加  行を追加するには、INSERTを使用します。  INSERT INTO テーブル名 (カラム1, カラム2, …) VALUES (値1, 値2, …)  データは行単位で追加されますが、データがセットされるカラムを指定する  ことができます。指定されないカラムはNULL値となります。  データベースによっては、カラム名を全て省略すると全カラムが対象となる  ことが多いようです。  商品テーブルに追加する例  INSERT INTO 商品   (商品コード, 商品名, 単価) VALUES ('A003', 'エクレア', 150)  また、SELECTで取得したデータをそのまま追加することもできますが、カラ  ムを揃える必要があります。  INSERT INTO 商品 (商品コード, 商品名, 単価)   SELECT 商品コード, 商品名, 単価 FROM 商品候補 ●行の更新  データは状況に応じて変更されていくものです。  変更には、UPDATEを使用します。  UPDATE テーブル名 SET カラム1 = 値1, カラム2 = 値2, … WHERE 条件式  WHEREで指定された条件に該当するレコードに対し、指定カラムの値を置き  換えることができます。  WHERE式を省略すると、テーブル内の全レコードが対象となりますので注意  しましょう。  商品テーブルの金額を変更する例  UPDATE 商品 SET 単価 = 220 WHERE 商品コード = 'A001' ●行の削除  不要になったデータはデータ取得の邪魔になりますので、削除することがで  きます。  削除には、DELETEを使用します。  DELETE FROM テーブル名 WHERE 条件式  WHEREで指定された条件に該当するレコードを削除できます。  UPDATEのときは「FROM」がありませんでしたが、DELETEのときは必要ですの  で間違えないようにしましょう。(データベースによってはUPDATEにFROMを  付けても問題ないものもあります)  商品テーブルから削除する例  DELETE FROM 商品 WHERE 商品コード = 'A001' ●注意事項  ある処理で複数回の更新系SQLを実行する場合、途中で失敗するとデータの  整合性が崩れることがあります。  これを防ぐため、トランザクション処理というものがあり、全て成功した時  はコミット(COMMIT)、一つでも失敗したときはロールバック(ROLLBACK)  を行います。  また、データの整合性を保つために、制約を設定していると更新系SQLが制  約に違反しているときにエラーとなりますので、制約を設定している場合は  仕様書に分かりやすく書いておいた方がよいでしょう。 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━