データ操作言語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つの離散的な操作を含む場合があります。このような振込取引は、トランザクションと呼ぶことができます。