Oracle データベースは、世界で最も一般的に使用されているリレーショナル データベース管理システムの 1 つです。 Oracle データベースを運用および保守する場合、多くの場合、ビジネス ロジックのニーズを満たすためにテーブル内の列を変更する必要があります。この記事では、読者の参考のためにOracleデータベースの列値を変更する方法を詳しく紹介します。
1. UPDATE ステートメントを使用して列の値を変更する
UPDATE ステートメントは、Oracle データベース内のデータを変更するために最も一般的に使用される方法の 1 つです。UPDATE ステートメントは、列の値を簡単に変更できます。テーブル内の列の値。基本的な構文は次のとおりです。
UPDATE table_name
SET column1 = value1, column2 = value2,...
WHERE 条件;
このうち、table_name はテーブル名を表します。変更が必要なテーブル、column1、column2 などは変更が必要な列名を表します、value1、value2 などは変更が必要な値を表します、condition はデータを変更するための条件を表します。
次は例です。テーブル内の「Zhang San」という名前の従業員のレコード内の位置を「プログラマー」から「ソフトウェア エンジニア」に変更する必要があるとします。次の SQL ステートメントを使用できます。
##UPDATEemployee_table
SET Position = 'Software Engineer'
WHERE name = 'Zhang San';
2. PL/SQL ステートメント ブロックを使用して、列の値
UPDATE 文の使用に加えて、PL/SQL 文ブロックを使用して表内の列の値を変更することもできます。 PL/SQL は Oracle データベース専用の手続き型言語であり、その構文は他のプログラミング言語と似ており、ストアド プロシージャ、トリガー、関数などの記述に使用できます。
次は例です。従業員表のすべての給与を 500 元増やす必要があるとします。これを達成するには、次の PL/SQL ステートメント ブロックを使用できます:
DECLARE
v_increase_salary NUMBER(10 ,2) := 500;
BEGIN
FOR emp IN (SELECT * FROMemployee_table)
LOOP
UPDATE employee_table
SET salary = emp.salary + v_increase_salary
WHERE id = emp.id;
END LOOP;
COMMIT;
END;
上記の例では、まず、増額する必要がある給与値を格納する v_increase_salary 変数を定義します。次に、FOR ループを使用してすべての従業員レコードを走査し、UPDATE ステートメントを通じて従業員の給与額を 500 元増やします。最後に、COMMIT ステートメントを通じて変更結果を送信します。
3. TRIGGER を使用して列の値を変更する
TRIGGER は Oracle データベースで非常に一般的に使用されるオブジェクトであり、特定の操作を自動的に実行するために使用できます。テーブルにTRIGGERを作成することで、カラムの値の変更など、データ操作が発生した際に関連する操作を自動的に実行できます。具体的な操作方法は以下のとおりです。
CREATE OR REPLACE TRIGGER トリガー名
AFTER INSERT OR UPDATE OR DELETE
ON テーブル名
FOR EACH ROW
BEGIN
-- トリガー本体
- - テーブル内の指定された列の値の変更およびその他の操作
END;
このうち、table_name は TRIGGER を作成する必要があるテーブルの名前を表し、trigger_name は TRIGGER を作成する必要があるテーブルの名前を表します。 TRIGGER は、他のオブジェクト名と競合してはなりません。AFTER INSERT OR UPDATE OR DELETE は、INSERT、UPDATE、または DELETE 操作の実行時に TRIGGER がトリガーされることを示します。FOR EACH ROW は、レコードの各行に対して操作が個別に実行されることを示します。trigger_body は、特定のTRIGGER をトリガーするときに実行する必要がある操作。
次は例です。従業員テーブルにトリガーを追加して、誰かの給与が変更されたときに、変更前の給与値が従業員給与履歴テーブルに記録されるようにする必要があるとします。次の SQL ステートメントを使用して、対応する TRIGGER を作成します。
CREATE OR REPLACE TRIGGER trg_save_salary
AFTER UPDATE ONemployee_table
FOR EACH ROW
BEGIN
INSERT INTO給与履歴テーブル(emp_id, old_salary, new_salary , update_date)
VALUES(:OLD.id, :OLD.salary, :NEW.salary, SYSDATE);
END;
上記の例では、 trg_save_salary という名前の TRIGGER を作成しました。これは、employee_table テーブルで UPDATE 操作が発生したときにトリガーされます。 INSERT INTO ステートメントを通じて、変更前の給与を給与履歴表テーブルに記録し、その他の関連情報 (従業員 ID、古い給与値、新しい給与値、変更日) を一緒に記録します。
概要:
Oracle データベースは、世界で最も一般的に使用されているリレーショナル データベース管理システムの 1 つです。UPDATE ステートメント、PL/SQL ステートメント ブロック、TRIGGER の使用をマスターすることで、次のことを実現できます。テーブルの管理列の値を変更し、ビジネス ニーズを満たします。実際のアプリケーションでは、最適な運用および保守効果を実現するために、さまざまなビジネス シナリオに応じてさまざまな変更方法を選択する必要があります。
以上がOracleデータベースの列値を変更する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。