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'
実行およびコミットする
- このチュートリアルの残りの部分では、文は入力し終えたら各々実行してください。 これについては、これ以降明示的に指示しません。
- また、DML 文(INSERT、DELETE、UPDATE、SELECT)を実行した後では、COMMIT 文の実行が必要になります。 DDL 文(CREATE、ALTER、DROP)に対しては、対話型 SQL の設定で、[DDL の自動コミット] を有効にしてあるので、手動コミットの必要はありません。
Employee テーブルのデータを更新する
より細かい更新を行うには、WHERE 句でさらに制限をかけていきます。 次のコードを入力して、営業のうち、1992年1月1日より前に雇用された者に対してのみ、給与を昇給させてみましょう。
UPDATE Employee
SET salary = salary + 2000
WHERE job_code = 'Sales' AND hire_date < '01-JAN-1992'
- 更新に WHERE 句が必須というわけではありません。 もし上の文に WHERE 句が含まれていなければ、更新により、Employee テーブル内のすべての社員の給与が上がることになります。
Updates.sql スクリプトを実行する
- テキスト エディタで Updates.sql ファイルを開き、その中身を確認します。 そこには、Department テーブルの mngr_no 列に対して値を設定する UPDATE 文が含まれており、Customer テーブルは、2 人の顧客のステータスを、on_hold 列にアスタリスク(*)を入力して「保留中」に設定することで更新します。 中身を確認し終えたら、ファイルを閉じます。
- [クエリー | 実行する] を選択し、Updates.sql ファイルを実行します。
バックアップの時間です: Updates.sql スクリプトを正常に実行し、手動の更新も行えたら、ここがデータベースを Tutorial5.gbk へバックアップする良いタイミングでしょう。