データ操作言語(DML)ステートメントは、既存のスキーマオブジェクト内のデータを照会または操作するために使用されます。
DDLステートメントはデータベース構造を変更しますが、DMLステートメントは内容を照会または変更できます。例えば、ALTER TABLEはテーブルの構造を変更し、INSERTステートメントはテーブルに1行または複数の行を追加します。
DMLステートメントは最も一般的なSQLステートメントであり、次の操作を実行できるようにします:
1つまたは複数のテーブルまたはビューからの照会(
SELECTステートメント)。値の挿入、または照会挿入により、新しいデータ行をテーブルまたはビューに追加(
INSERTステートメント)。テーブルまたはビューの既存行の列値を変更(
UPDATEステートメント)。条件付きでテーブルまたはビューに行を更新または挿入(
MERGEステートメント)。テーブルまたはビューから行を削除(
DELETEステートメント)。SQLステートメントの実行計画を表示(
EXPLAINステートメント)。
次の例では、DMLを使用してcustomerテーブルを照会し、DMLを使用して行をcustomerに挿入し、この行を更新してから削除します。
CREATE TABLE customer (
cust_id INT PRIMARY KEY,
cust_name VARCHAR(50),
cust_surname VARCHAR(50)
);
SELECT * FROM customer;
INSERT INTO customer VALUES(1234,'Tom','Jacy');
UPDATE customer SET cust_name = 'Tomy' WHERE cust_id = 11;
DELETE FROM customer WHERE cust_id = 11;
論理的ワークユニットを構成する一連のDMLステートメントの集合をトランザクションと呼びます。DDLステートメントとは異なり、DMLステートメントは現在のトランザクションを暗黙的にコミットしません。
例えば、振り込み取引は、貯蓄口座残高の減少、小切手口座残高の増加、および振り込み履歴テーブルへの記録という3つの離散的な操作を含む可能性があり、このような振り込み取引はトランザクションと呼ぶことができます。