この内容は古いバージョンです。最新バージョンを表示するには、戻るボタンを押してください。
バージョン:5
ページ更新者:atom
更新日時:2026-05-18 01:50:53

タイトル: DML

DML(Data Manipulation Language)とはSQLの分類のひとつです。

表に対しての検索、挿入、更新、削除等を行います。

SELECT, UPDATE, INSERT, DELETE文等が該当します。

本ページの子ページ一覧

基本文

条件・抽出

  • WHERE句 — 条件指定で絞り込み

結合と集合演算

  • JOIN句 — 複数テーブルの結合(INNER / LEFT / RIGHT / FULL)
  • 集合演算子 — UNION / INTERSECT / MINUS

応用

SQL分類の中での DML の位置づけ

分類略称対象
Data Definition LanguageDDLスキーマ・テーブル定義CREATE / ALTER / DROP / TRUNCATE
Data Manipulation LanguageDMLレコードのCRUDSELECT / INSERT / UPDATE / DELETE
Data Control LanguageDCL権限GRANT / REVOKE
Transaction Control LanguageTCLトランザクションBEGIN / COMMIT / ROLLBACK

DMLの基本構文サンプル

-- SELECT
SELECT id, name FROM users WHERE age >= 20 ORDER BY id;

-- INSERT
INSERT INTO users (id, name, age) VALUES (1, 'Taro', 25);

-- UPDATE
UPDATE users SET name = 'Jiro' WHERE id = 1;

-- DELETE
DELETE FROM users WHERE id = 1;

DMLとトランザクション

DMLは多くの場合トランザクションの対象になります。

  • DMLでデータを変更しても、COMMITが走らない限りDBには確定しない
  • 失敗時は ROLLBACK で取り消し可能
  • DDLはほとんどのDBで暗黙COMMITが走る(取り消し不可)

注意点

  • WHERE節を必ず付ける: UPDATE / DELETE のWHERE抜けは大事故。テスト時はまずSELECTで対象件数を確認
  • 本番では BEGIN; ... ROLLBACK; で確認してから COMMIT
  • 大量UPDATE/DELETEは行ロックで他処理がブロックされやすい。チャンク化を検討
  • 方言の差: LIMIT(MySQL)/FETCH FIRST(DB2/SQL Standard)/ROWNUM(Oracle)など

関連

  • 親カテゴリ: SQL
  • 類似テーマ(MySQL/MariaDB側のSQL): SQL
  • DML対比: DDL(テーブル定義系)