情報処理試験を勉強していると、「DMLって何?DDLとどう違うの?」と混乱しがちです。この記事では、SQLの中でも特に試験で頻出のDML(データ操作言語)を、4つの命令文の役割と一緒に整理します。

対象試験と出題頻度

DML(SQL)は、ITパスポート・基本情報技術者・応用情報技術者のすべてで出題されるテーマです。

関係データベースを操作するSQL文の中核であり、SELECT文の読み取り問題はFE・APで毎回のように出題されます。

詳細をクリックして確認
対象試験:
ITパスポート
基本情報技術者
応用情報技術者
出題頻度:
★★★★☆
ランクA(重要)必ず覚えておくべき

用語の定義

DML(Data Manipulation Language:データ操作言語)とは、一言で言うと

 「SQLの中で、データの検索・追加・更新・削除を行う命令文のグループ

のことです。

イメージとしては、図書館の貸出カウンターです。

図書館には「本棚の配置を決める設計図」(=DDL)と、「実際に本を探す・借りる・返す・処分する窓口業務」(=DML)があります。

DMLは後者にあたり、すでに用意されたテーブル(本棚)に対して「中身のデータ(本)をどうするか」を指示する命令です。

📊 DML(SQL)の基本情報

項目 内容
正式名称 Data Manipulation Language(データ操作言語)
所属 SQL(Structured Query Language)の一部
主な命令文 SELECT、INSERT、UPDATE、DELETE
操作対象 テーブル内のデータ(行・列)

解説

SQLは「関係データベースを操作するための言語」ですが、その中身は目的別に3つのカテゴリに分かれています。

テーブルの構造を定義するDDL、データを出し入れするDML、そしてアクセス権限を制御するDCLです。

DMLが生まれた背景は単純で、「定義済みのテーブルに対して、中のデータを自由に操作する手段が必要だった」という点に尽きます。

DDLでテーブルの器を作っても、中身のデータを検索・追加・変更・削除できなければデータベースは使い物になりません。

SQLの3分類:DDL・DML・DCL

まず全体像を押さえましょう。SQL文は以下の3つに分類されます。

分類 正式名称 役割 代表的な命令
DDL Data Definition Language テーブルやインデックスなどの構造を定義・変更・削除する CREATE, ALTER, DROP
DML Data Manipulation Language テーブル内のデータを検索・追加・更新・削除する SELECT, INSERT, UPDATE, DELETE
DCL Data Control Language アクセス権限の付与・剥奪を行う GRANT, REVOKE

この中で、日常的に最も使う頻度が高く、試験でも圧倒的に出題されるのがDMLです。

DMLの4つの命令文

DMLを構成する命令は4つです。それぞれの役割と基本構文を確認しましょう。

命令文 操作 説明
SELECT 検索 テーブルから条件に合うデータを抽出する。WHERE句で条件指定、ORDER BYで並び替え、GROUP BYでグループ化が可能
INSERT 追加 テーブルに新しい行(レコード)を挿入する
UPDATE 更新 既存の行のデータを書き換える。SET句で変更内容、WHERE句で対象行を指定する
DELETE 削除 テーブルから条件に合う行を削除する。テーブル自体はそのまま残る(テーブルごと消すDROPはDDL)

図解:DMLの4命令とテーブルの関係

「社員」テーブルを例に、各命令がデータに対してどう作用するかを図で整理します。

DMLの4命令が「社員」テーブルに行う操作

社員テーブル

社員ID 氏名 部署
001田中営業
002鈴木開発
003佐藤総務

▼ このテーブルに対して以下の4操作ができる

🔍 SELECT(検索)

SELECT * FROM 社員
WHERE 部署 = '営業';

→ 田中の行だけ取り出す

➕ INSERT(追加)

INSERT INTO 社員
VALUES ('004','高橋','企画');

→ 新しい行を1件追加

✏️ UPDATE(更新)

UPDATE 社員 SET 部署='企画'
WHERE 社員ID = '002';

→ 鈴木の部署を書き換え

🗑️ DELETE(削除)

DELETE FROM 社員
WHERE 社員ID = '003';

→ 佐藤の行を削除

▲ 4命令はすべて「テーブル内のデータ(行)」に対する操作。テーブル自体の作成・削除はDDLの領域

DDLとDMLの混同に注意:DROPとDELETEの違い

初学者が最もつまずくのが「DROP」と「DELETE」の混同です。どちらも「消す」操作ですが、対象が根本的に異なります。

DROP(DDL) vs DELETE(DML)

DROP TABLE 社員;

テーブルそのものが消滅する
(器ごとなくなる)

→ DDL(定義言語)

DELETE FROM 社員;

全行が削除されるが
テーブルの構造は残る

→ DML(操作言語)

では、これらの命令が試験でどのように出題されるか見ていきましょう。

💡 DML(SQL)の核心を3行で

・SQLのうち、テーブル内のデータを操作する命令群がDML(Data Manipulation Language)
・SELECT(検索)・INSERT(追加)・UPDATE(更新)・DELETE(削除)の4つで構成される
・テーブルの構造自体を操作するDDL(CREATE/DROP/ALTER)とは明確に区別する


試験ではこう出る!

DML関連の出題は、FE・APではSELECT文の読解が圧倒的に多く、IPでは「SQLとは何か」「DDLとDMLの違い」を問う知識問題が中心です。

📊 過去問での出題実績

試験回 出題内容 問われたポイント
IP H30秋
問58
SSL/TLS、SQLなど各用語の説明を選ぶ問題。選択肢ウに「SQLはRDBを操作するための言語であり、DDLとDMLで構成される」と記載。 ・SQLの全体像(DDL+DML)を正しく理解しているか
FE R7
科目A 問6
SELECT文のWHERE句のIN句と同じ結果を得られるSQL文を選ぶ問題。 ・IN句をOR条件に置き換える知識
・ANDとORの論理的な違い
AP R6秋
午前 問30
SELECT文の副問合せ・ウィンドウ関数を使った結果を問う問題。 ・SELECT文の高度な構文の読解力
AP R4秋
午前 問28
副問合せを含むSELECT文の結果を問う問題。 ・副問合せの評価順序
・DISTINCT句の意味

📝 IPA試験での出題パターン

パターン1(IP向き):「SQLの構成要素を選べ」
SQLがDDLとDMLで構成されることを知っているかを問う形式。ひっかけとして、HTML、CSS、SSL/TLSなどの説明が選択肢に混ざる。「データ定義言語」「データ操作言語」というキーワードを押さえていれば正解できる。

 

パターン2(FE・AP向き):「SELECT文の結果を答えよ」
DML出題の大半がこの形式。WHERE句の条件指定(IN, BETWEEN, LIKE)、GROUP BY+HAVING、副問合せ、JOINの結合結果を正確に読み取れるかが問われる。特にFEでは毎回出題されるため、SELECT文の構文は最優先で対策すべき領域。

 

パターン3(AP午後向き):「INSERT/UPDATE/DELETEの穴埋め」
AP午後のデータベース問題では、E-R図を読み取った上でDMLを記述させる問題が定番。SELECT以外の3命令の構文も書けるようにしておく必要がある。

 

IPレベルでは「DMLとDDLの区別」ができれば十分です。FE・APではSELECT文の読解が本丸なので、深追いするならそちらに集中してください。


【確認テスト】理解度チェック

ここまでの内容を理解できたか、簡単なクイズで確認してみましょう。


Q. SQLにおけるDML(データ操作言語)の説明として、最も適切なものはどれでしょうか?

  • A. テーブルやインデックスの作成・変更・削除など、データベースの構造を定義するための命令群である。
  • B. テーブルに格納されたデータの検索・追加・更新・削除を行うための命令群であり、SELECT・INSERT・UPDATE・DELETEが含まれる。
  • C. データベースへのアクセス権限の付与や剥奪を行うための命令群であり、GRANTやREVOKEが含まれる。

正解と解説を見る

正解:B

解説:
DML(Data Manipulation Language)は、テーブル内のデータを操作するSQL命令の総称であり、SELECT・INSERT・UPDATE・DELETEの4つが該当します。

選択肢AはDDL(Data Definition Language)の説明です。DDLはCREATE・ALTER・DROPなど、テーブルそのものの構造を定義する命令を扱います。データの中身を操作するDMLとは対象が異なります。選択肢CはDCL(Data Control Language)の説明です。DCLはGRANT・REVOKEなど、ユーザーに対する権限の制御を行う命令であり、データの出し入れとは目的が異なります。


よくある質問(FAQ)

Q. SELECT文はDMLではなく「DQL」と分類されることがあると聞きました。試験ではどちらで覚えるべきですか?

IPA試験ではSELECTをDMLの一部として扱います。確かに一部のデータベース教科書ではSELECTだけを「DQL(Data Query Language)」と呼ぶ場合がありますが、IPA公式のシラバスや過去問ではDMLにSELECTを含める分類を採用しています。試験対策としてはDML=SELECT・INSERT・UPDATE・DELETEの4つで覚えてください。

Q. TRUNCATE文はDMLですか?DDLですか?

TRUNCATEはDDLに分類されます。「テーブル内の全行を一括削除する」という点ではDELETEに似ていますが、TRUNCATEはテーブルの定義を再作成する操作として扱われ、ロールバック(取消し)ができません。一方、DELETEはDMLなのでトランザクション内でロールバック可能です。この違いはAP午後で問われることがあるため、余裕があれば押さえておくと安心です。

Q. 実務ではDMLの中でどの命令を最もよく使いますか?

圧倒的にSELECTです。業務アプリケーションの大半は「データを条件付きで検索して画面に表示する」処理であり、INSERT・UPDATE・DELETEは登録・変更・削除の画面でのみ発生します。開発現場では「SQLが書ける=SELECT文を自在に組み立てられる」とほぼ同義で使われるほどです。

Q. DMLの誤操作でデータが消えてしまった場合、復旧する方法はありますか?

トランザクションがまだ確定(COMMIT)されていなければ、ロールバック(ROLLBACK)で操作前の状態に戻せます。COMMIT後であれば、DBMSのバックアップとトランザクションログを使ったロールフォワード(前進復帰)で復旧するのが一般的です。IPA試験では障害回復の手順としてこのロールバック・ロールフォワードの使い分けが頻出です。