はじめに
こんにちは。
SQLにはCREATE TABLE、SELECT、INSERT、GRANT など、さまざまな文が出てきます。
どれも「SQL」と呼ばれますが、SQLにはその役割に応じて DDL / DML / DCL という分類があります。
この記事では、DDL・DML・DCLの3つの分類についてまとめます。
SQLの3つの分類
SQLの文は、大きく次の3つに分類されます。
| 分類 | 正式名称 | 役割 | 代表的な文 |
|---|---|---|---|
| DDL | Data Definition Language | テーブルやインデックスの定義 |
CREATE, ALTER, DROP, TRUNCATE
|
| DML | Data Manipulation Language | データの抽出・追加・更新・削除 |
SELECT, INSERT, UPDATE, DELETE
|
| DCL | Data Control Language | 権限の付与・取り消し |
GRANT, REVOKE
|
DDL(データ定義言語)
DDLは、データベースやテーブルなどの「構造」を定義・変更・削除する文です。
例:
- テーブル作成(CREATE)
CREATE TABLE users (
id INT PRIMARY KEY,
name VARCHAR(255) NOT NULL
);
- カラム追加(ALTER)
ALTER TABLE users ADD COLUMN email VARCHAR(255);
- テーブル削除(DROP)
DROP TABLE users;
DML(データ操作言語)
DMLは、テーブルの中のデータを操作する文です。
例:
- データの抽出(SELECT)
SELECT * FROM users WHERE id = 1;
- データの追加(INSERT)
INSERT INTO users (id, name) VALUES (1, 'Alice');
- データの更新(UPDATE)
UPDATE users SET name = 'Bob' WHERE id = 1;
- データの削除(DELETE)
DELETE FROM users WHERE id = 1;
DCL(データ制御言語)
DCLは、データベースへのアクセス権限を制御する文です。
例:
- 権限の付与(GRANT)
GRANT SELECT, INSERT ON users TO 'app_user'@'localhost';
- 権限の取り消し(REVOKE)
REVOKE INSERT ON users FROM 'app_user'@'localhost';
まとめ
- SQLは役割に応じて DDL・DML・DCL に分類できる
- DDLはテーブルの構造を定義する(
CREATE,ALTER,DROP) - DMLはデータを操作する(
SELECT,INSERT,UPDATE,DELETE) - DCLは権限を制御する(
GRANT,REVOKE)
お読みいただきありがとうございました。