メインコンテンツまでスキップ

言語

はい、SQLには DDL(データ定義言語), DML(データ操作言語), DCL(データ制御言語), TCL(トランザクション制御言語) の4つの分類があります。

1. DDL(データ定義言語:Data Definition Language)

データベースやテーブルの構造を定義・変更するSQL。

  • CREATE:新しいデータベースやテーブルを作成
  • ALTER:テーブルの構造を変更
  • DROP:データベースやテーブルを削除
  • TRUNCATE:テーブルの全データを削除(テーブル構造は残る)

例:テーブルを作成

CREATE TABLE users (
id INT PRIMARY KEY AUTO_INCREMENT,
name VARCHAR(50),
email VARCHAR(100) UNIQUE
);

例:テーブルにカラムを追加

ALTER TABLE users ADD COLUMN age INT;

例:テーブルを削除

DROP TABLE users;

2. DML(データ操作言語:Data Manipulation Language)

データの追加・更新・削除・取得を行うSQL。

  • INSERT:データを追加
  • UPDATE:データを更新
  • DELETE:データを削除
  • SELECT:データを取得(ただし、厳密にはDQL(Data Query Language)とすることもある)

例:データを追加

INSERT INTO users (name, email) VALUES ('Alice', 'alice@example.com');

例:データを更新

UPDATE users SET email = 'alice_new@example.com' WHERE name = 'Alice';

例:データを削除

DELETE FROM users WHERE name = 'Alice';

例:データを取得

SELECT * FROM users;

3. DCL(データ制御言語:Data Control Language)

データベースのアクセス制御や権限を管理するSQL。

  • GRANT:権限を付与
  • REVOKE:権限を取り消し

例:特定のユーザーにSELECT権限を与える

GRANT SELECT ON users TO 'user1'@'localhost';

例:権限を取り消す

REVOKE SELECT ON users FROM 'user1'@'localhost';

4. TCL(トランザクション制御言語:Transaction Control Language)

トランザクション(複数のSQLを1つの処理単位としてまとめる)の制御を行うSQL。

  • COMMIT:変更を確定(保存)
  • ROLLBACK:変更を取り消す
  • SAVEPOINT:途中の状態を保存し、一部だけ取り消し可能にする

例:トランザクションの開始と確定

START TRANSACTION;
UPDATE users SET email = 'test@example.com' WHERE name = 'Alice';
COMMIT;

例:トランザクションを取り消す

START TRANSACTION;
UPDATE users SET email = 'wrong@example.com' WHERE name = 'Alice';
ROLLBACK; -- 変更を元に戻す

まとめ

種類説明主なコマンド
DDLデータベースやテーブルの定義CREATE, ALTER, DROP, TRUNCATE
DMLデータの追加・更新・削除・取得INSERT, UPDATE, DELETE, SELECT
DCL権限の管理GRANT, REVOKE
TCLトランザクションの制御COMMIT, ROLLBACK, SAVEPOINT

PMとしては、特にDDLとDMLを理解しておくと、データベース設計や運用で役立ちます!
どこまで詳しく知りたいか、使う予定があるかによって、深堀りして説明できますよ!

dmlのselectを一番先に覚えるのがいい