UPDATE の使用

提供: InterBase

InterBase クイック スタート:Part III - データベースの中身の設定 へ戻る

シンプルな更新の場合、構文は次のようになります:

UPDATE table
  SET column = value
  WHERE condition

UPDATE 文は、SET 句で指定された列の値を変更します。SET 句に列挙されなかった列は変更されません。 複数の列を更新するには、各列の割り当てをカンマで区切って、SET 句内に列挙します。 WHERE 句は、どの行が更新されるかを決定します。 WHERE 句がなかった場合、すべての行が更新されます。 たとえば、次の文は営業の給与を $2,000 昇給させるもので、Employee テーブルの salary 列のうち、job_code 列の値が「Sales」である行を、更新します。 (これはまだ行わないでください)。

 UPDATE Employee
 SET salary = salary + 2000
 WHERE job_code = 'Sales'


Image 025.jpg実行およびコミットする

  • このチュートリアルの残りの部分では、文は入力し終えたら各々実行してください。 これについては、これ以降明示的に指示しません。
  • また、DML 文(INSERT、DELETE、UPDATE、SELECT)を実行した後では、COMMIT 文の実行が必要になります。 DDL 文(CREATE、ALTER、DROP)に対しては、対話型 SQL の設定で、[DDL の自動コミット] を有効にしてあるので、手動コミットの必要はありません。

Image 025.jpgEmployee テーブルのデータを更新する

より細かい更新を行うには、WHERE 句でさらに制限をかけていきます。 次のコードを入力して、営業のうち、1992年1月1日より前に雇用された者に対してのみ、給与を昇給させてみましょう。

 UPDATE Employee
   SET salary = salary + 2000 
   WHERE job_code = 'Sales' AND hire_date < '01-JAN-1992'
更新に WHERE 句が必須というわけではありません。 もし上の文に WHERE 句が含まれていなければ、更新により、Employee テーブル内のすべての社員の給与が上がることになります。

Image 025.jpgUpdates.sql スクリプトを実行する

  1. テキスト エディタで Updates.sql ファイルを開き、その中身を確認します。 そこには、Department テーブルの mngr_no 列に対して値を設定する UPDATE 文が含まれており、Customer テーブルは、2 人の顧客のステータスを、on_hold 列にアスタリスク(*)を入力して「保留中」に設定することで更新します。 中身を確認し終えたら、ファイルを閉じます。
  2. [クエリー | 実行する] を選択し、Updates.sql ファイルを実行します。


バックアップの時間です:   Updates.sql スクリプトを正常に実行し、手動の更新も行えたら、ここがデータベースを Tutorial5.gbk へバックアップする良いタイミングでしょう。

次は: