こんにちは。今回はデータベースの実務でも試験でも大事な 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)= トランザクション制御
COMMIT、ROLLBACK
🔹 幼稚園児でもわかる例え
- DDLは「おもちゃ箱を作る・直す・捨てる」
- DMLは「おもちゃを入れる・出す・並べ替える・捨てる」
- DCLは「このおもちゃで遊んでいいのは〇〇ちゃんだけ」
- TCLは「おもちゃを片付けるか、散らかすのをなかったことにするか」
🔹 午前問題の過去問
過去問①(令和元年・春・午前)
SQLの分類のうち、表を作成したり削除したりする命令が属するものはどれか。
- DCL
- DDL
- DML
- TCL
➡️ 正解:2(DDL)
過去問②(令和3年・春・午前)
次のSQL文の実行結果を問う問題。
UPDATE Student
SET Age = Age + 1
WHERE Name = 'Tanaka';
この処理の説明として正しいものはどれか。
- 学生表から Tanaka の行を削除する
- 学生表に Tanaka の行を追加する
- 学生表の Tanaka の年齢を 1 増やす
- 学生表の全ての年齢を 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図や設計と組み合わせて考える
