タイトル: DML
DML(Data Manipulation Language)とはSQLの分類のひとつです。
表に対しての検索、挿入、更新、削除等を行います。
SELECT, UPDATE, INSERT, DELETE文等が該当します。
本ページの子ページ一覧
基本文
条件・抽出
- WHERE句 — 条件指定で絞り込み
結合と集合演算
応用
SQL分類の中での DML の位置づけ
| 分類 | 略称 | 対象 | 例 |
|---|---|---|---|
| Data Definition Language | DDL | スキーマ・テーブル定義 | CREATE / ALTER / DROP / TRUNCATE |
| Data Manipulation Language | DML | レコードのCRUD | SELECT / INSERT / UPDATE / DELETE |
| Data Control Language | DCL | 権限 | GRANT / REVOKE |
| Transaction Control Language | TCL | トランザクション | BEGIN / COMMIT / ROLLBACK |
DMLの基本構文サンプル
|
-- SELECT |
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)など