SQLコマンドの分類と概要
SQL(Structured Query Language)は、データベースを操作するための言語であり、大きく DDL(データ定義言語)、DML(データ操作言語)、DCL(データ制御言語)、TCL(トランザクション制御言語) の4つに分類されます。本記事では、それぞれのカテゴリと代表的なコマンドについて詳しく解説します。
1. DDL(Data Definition Language:データ定義言語)
DDLは、データベースの構造を定義・変更するためのコマンド群です。テーブル、スキーマ、インデックス などの作成・変更・削除に使用されます。
✅ 主なDDLコマンド
コマンド | 説明 |
---|---|
CREATE |
データベースやテーブル、インデックスなどのオブジェクトを作成 |
ALTER |
既存のテーブルやオブジェクトの構造を変更 |
DROP |
テーブルやデータベースなどのオブジェクトを削除 |
TRUNCATE |
テーブル内の全データを削除し、オートインクリメントをリセット |
💡 DDLの使用例
-- テーブルの作成
CREATE TABLE users (
id INT PRIMARY KEY,
name VARCHAR(50),
email VARCHAR(100)
);
-- テーブルの変更(カラムの追加)
ALTER TABLE users ADD COLUMN age INT;
-- テーブルの削除
DROP TABLE users;
2. DML(Data Manipulation Language:データ操作言語)
DMLは、データベース内のデータを操作(追加、更新、削除、取得)するためのコマンド群です。
✅ 主なDDLコマンド
コマンド | 説明 |
---|---|
INSERT | データを追加 |
UPDATE | 既存のデータを更新 |
DELETE | 既存のデータを削除 |
SELECT | データを取得(DQL:Data Query Language に分類されることもある) |
💡 DMLの使用例
-- データの挿入
INSERT INTO users (id, name, email, age) VALUES (1, 'Alice', 'alice@example.com', 25);
-- データの更新
UPDATE users SET age = 26 WHERE id = 1;
-- データの削除
DELETE FROM users WHERE id = 1;
-- データの取得
SELECT * FROM users WHERE age >= 20;
3. DCL(Data Control Language:データ制御言語)
DCLは、データベースのアクセス権限やユーザー管理を行うためのコマンド群です。
✅ 主なDDLコマンド
コマンド | 説明 |
---|---|
GRANT | ユーザーに特定の権限を付与 |
REVOKE | ユーザーから特定の権限を剥奪 |
💡 DCLの使用例
-- ユーザーにSELECT権限を付与
GRANT SELECT ON users TO user1;
-- ユーザーから権限を剥奪
REVOKE SELECT ON users FROM user1;
💡 DCLは主に データベース管理者(DBA) が使用することが多く、一般の開発者が触る機会は少ないです。
4. TCL(Transaction Control Language:トランザクション制御言語)
TCLは、トランザクションの制御を行うためのコマンド群です。データの一貫性や整合性を保つ ために使用されます。
✅ 主なTCLコマンド
コマンド | 説明 |
---|---|
COMMIT | トランザクションの変更を確定 |
ROLLBACK | トランザクションを取り消して元の状態に戻す |
SAVEPOINT | トランザクションの途中で一時的な保存ポイントを作成 |
💡 TCLの使用例
-- トランザクションの開始
BEGIN;
-- データの更新
UPDATE users SET age = 30 WHERE id = 1;
-- 変更を確定(コミット)
COMMIT;
-- トランザクションの開始
BEGIN;
-- データの削除
DELETE FROM users WHERE id = 1;
-- 変更をキャンセル(ロールバック)
ROLLBACK;
💡 COMMIT しない限り、データの変更は永続化されません。
✅ SQLコマンドの全体分類まとめ
カテゴリ | 主なコマンド | 説明 |
---|---|---|
DDL | CREATE, ALTER, DROP, TRUNCATE | データベース構造の定義・変更 |
DML | INSERT, UPDATE, DELETE, SELECT | データの操作 |
DCL | GRANT, REVOKE | アクセス制御 |
TCL | COMMIT, ROLLBACK, SAVEPOIN | トランザクション制御 |
🎯 まとめ
・DDL(データ定義言語):テーブルやデータベースの構造を定義・変更
・DML(データ操作言語):データの追加・変更・削除・取得を行う
・DCL(データ制御言語):データベースのアクセス権限を管理
・TCL(トランザクション制御言語):トランザクションの管理
このように、SQLコマンドは用途ごとに整理されています。特に DML(INSERT, UPDATE, DELETE)とTCL(COMMIT, ROLLBACK)を組み合わせることで、安全なデータ管理が可能 になります。適切なSQLコマンドを使い分けて、効率的なデータベース操作を行いましょう!