【Day34】SQL入門:DDL・DMLをまとめて理解

投稿者: | 2025年9月10日

こんにちは。今回はデータベースの実務でも試験でも大事な SQL(Structured Query Language) を勉強します。

SQLは「データベースにお願いする言葉」です。
たとえば、

  • 「このデータちょうだい!」
  • 「新しいテーブルを作って!」
  • 「このデータを消して!」

などを伝えるのがSQLです。


🔹 SQLの大きな分類

① DDL(Data Definition Language)= 定義

データベースの「入れ物(テーブルやビューなど)」を作ったり変えたりする命令。

  • CREATE(作る)
  • ALTER(変える)
  • DROP(消す)

👉 例:「生徒」という表を作る

CREATE TABLE Student (
  StudentID INT PRIMARY KEY,
  Name VARCHAR(50),
  Age INT
);

② DML(Data Manipulation Language)= 操作

実際の「データ」を操作する命令。

  • SELECT(検索)
  • INSERT(追加)
  • UPDATE(更新)
  • DELETE(削除)

👉 例:「18歳以上の生徒を探す」

SELECT Name, Age FROM Student
WHERE Age >= 18;

③ その他(参考)

  • DCL(Data Control Language)= 権限を管理
    • GRANT(権限を与える)、REVOKE(権限を取り消す)
  • TCL(Transaction Control Language)= トランザクション制御
    • COMMITROLLBACK

🔹 幼稚園児でもわかる例え

  • DDLは「おもちゃ箱を作る・直す・捨てる」
  • DMLは「おもちゃを入れる・出す・並べ替える・捨てる」
  • DCLは「このおもちゃで遊んでいいのは〇〇ちゃんだけ」
  • TCLは「おもちゃを片付けるか、散らかすのをなかったことにするか」

🔹 午前問題の過去問

過去問①(令和元年・春・午前)

SQLの分類のうち、表を作成したり削除したりする命令が属するものはどれか。

  1. DCL
  2. DDL
  3. DML
  4. TCL

➡️ 正解:2(DDL)


過去問②(令和3年・春・午前)

次のSQL文の実行結果を問う問題。

UPDATE Student
SET Age = Age + 1
WHERE Name = 'Tanaka';

この処理の説明として正しいものはどれか。

  1. 学生表から Tanaka の行を削除する
  2. 学生表に Tanaka の行を追加する
  3. 学生表の Tanaka の年齢を 1 増やす
  4. 学生表の全ての年齢を 1 増やす

➡️ 正解:3


🔹 午後問題の過去問

午後試験では、ER図やテーブル設計と組み合わせてSQLを使う問題が多いです。

過去問例(令和2年・秋・午後)

次の「商品テーブル」と「販売テーブル」がある。
販売テーブルの「商品ID」をキーに、商品名と販売数量を一覧するSQLを答えよ。

  • 商品テーブル(商品ID, 商品名)
  • 販売テーブル(販売ID, 商品ID, 数量)

➡️ 解答例:

SELECT S.商品名, V.数量
FROM 商品 S, 販売 V
WHERE S.商品ID = V.商品ID;

👉 午後問題では「JOIN」「GROUP BY」「サブクエリ」などを組み合わせて考えるのがポイントです。


🔹 まとめ

  • DDL → 入れ物(テーブルなど)を定義
  • DML → データを操作
  • DCL/TCL → 権限やトランザクション制御
  • 午前問題 → SQLの種類や基本的な文法
  • 午後問題 → ER図や設計と組み合わせて考える