SQL(エスキューエル)は、データベースとやりとりするための言語です。
データベースって何?と思う方もいるかもしれません。
簡単に言うと、たくさんの情報を整理して保存しておく倉庫のようなものです。例えば:
- 会員情報(名前、年齢、メールアドレスなど)
- 商品情報(商品名、価格、在庫数など)
- 注文履歴(いつ、誰が、何を買ったかなど)
これらの情報を表(テーブル)の形で管理し、SQLコマンドを使って検索・追加・変更・削除・管理を行います。
この記事では、これからSQLを学ぶ初心者の方に向けて、代表的なコマンドを種類別に紹介し、具体的な例と一緒に解説します!
データ操作(DML:Data Manipulation Language)

✅ SELECT:データを取得する
一番よく使うコマンドです!
-- usersテーブルのすべての情報を取得
SELECT * FROM users;
-- 20歳以上の人の名前と年齢だけを取得
SELECT name, age FROM users WHERE age >= 20;
ポイント:*
は「すべての列」を意味します。特定の列だけほしいときは、列名を指定しましょう。
✅ INSERT:データを追加する
新しい情報をテーブルに追加するときに使います。
-- usersテーブルに新しい人を追加
INSERT INTO users (name, age) VALUES ('田中', 25);
-- 複数の人を一度に追加
INSERT INTO users (name, age) VALUES
('佐藤', 30),
('鈴木', 28),
('高橋', 22);
✅ UPDATE:既存データを変更する
すでにあるデータを修正するときに使います。
-- 田中さんの年齢を30歳に変更
UPDATE users SET age = 30 WHERE name = '田中';
-- 全員の年齢を1歳増やす
UPDATE users SET age = age + 1;
注意:WHERE条件を忘れると、すべてのデータが変更されてしまいます!
✅ DELETE:データを削除する
不要なデータを削除するときに使います。
-- 18歳未満のデータを削除
DELETE FROM users WHERE age < 18;
注意:DELETEも、WHERE条件を忘れるとすべてのデータが削除されてしまいます!
データ定義(DDL:Data Definition Language)
✅ CREATE TABLE:テーブルの作成
新しいテーブル(表)を作るときに使います。
-- usersテーブルを作成
CREATE TABLE users (
id INT PRIMARY KEY,
name VARCHAR(50),
age INT
);
データ型の説明:
INT
:整数(年齢、ID番号など)VARCHAR(50)
:文字列(最大50文字まで)PRIMARY KEY
:そのテーブルで重複しない特別な列
✅ DROP TABLE:テーブルを削除する
テーブル全体を削除するときに使います。
-- usersテーブルを完全に削除
DROP TABLE users;
注意:テーブルを削除すると、中のデータもすべて消えてしまいます!
✅ ALTER TABLE:テーブル構造を変更
既存のテーブルに列を追加したり、変更したりするときに使います。
-- usersテーブルにemail列を追加
ALTER TABLE users ADD COLUMN email VARCHAR(100);
-- テーブル名をcustomersに変更
ALTER TABLE users RENAME TO customers;
データ制御(DCL:Data Control Language)
✅ GRANT:権限を付与
誰がそのデータベースで何をできるかを設定します。
-- user_nameに対して、usersテーブルの閲覧と追加権限を与える
GRANT SELECT, INSERT ON users TO user_name;
✅ REVOKE:権限を取り消す
与えた権限を取り消すときに使います。
-- user_nameからusersテーブルへの追加権限を取り消す
REVOKE INSERT ON users FROM user_name;
トランザクション制御(TCL)

✅ BEGIN / COMMIT / ROLLBACK
複数の処理をまとめて実行し、すべて成功したときだけ確定させる仕組みです。
BEGIN;
-- 口座Aから500円を引く
UPDATE accounts SET balance = balance - 500 WHERE id = 1;
-- 口座Bに500円を入れる
UPDATE accounts SET balance = balance + 500 WHERE id = 2;
-- 両方成功したら確定
COMMIT;
途中で失敗したらROLLBACK
で元に戻せます。
その他よく使うコマンド・構文
コマンド | 何をする? | 使用例 |
---|---|---|
DISTINCT | 重複を除いて表示 | SELECT DISTINCT age FROM users; |
ORDER BY | データを並べ替え | SELECT * FROM users ORDER BY age DESC; |
GROUP BY | グループごとに集計 | SELECT age, COUNT(*) FROM users GROUP BY age; |
JOIN | 複数のテーブルを結合 | SELECT * FROM users JOIN orders ON users.id = orders.user_id; |
LIMIT | 表示件数を制限 | SELECT * FROM users LIMIT 10; |
実用例
-- 年齢の高い順に上位10人を表示
SELECT name, age FROM users ORDER BY age DESC LIMIT 10;
-- 年齢別の人数を集計
SELECT age, COUNT(*) as 人数 FROM users GROUP BY age ORDER BY age;
よくある注意点とエラー例
症状 | 原因 | 対処法 |
---|---|---|
Syntax error | スペルミスや文法間違い | コマンドの書き方を確認 |
Unknown column | 存在しない列を指定 | 列名を正しく書く |
Permission denied | 権限がない | 管理者に権限をもらう |
No rows returned | 条件に合うデータがない | WHERE条件を見直す |
まとめ:SQLコマンドを使いこなせば、データ操作が自由自在!
SQLは一見難しそうですが、基本的なコマンドを覚えるだけでデータの取得・編集・管理がスムーズにできるようになります。
特にSELECT・INSERT・UPDATE・DELETEの4つは必須なので、まずはここからマスターしましょう!
学習の順番
- SELECT:データを見る(一番大切)
- INSERT:データを追加する
- UPDATE:データを変更する
- DELETE:データを削除する
- CREATE TABLE:テーブルを作る
覚えておきたい基本コマンド
種類 | 主なコマンド | 用途 |
---|---|---|
データ操作(DML) | SELECT, INSERT, UPDATE, DELETE | 日常的なデータ操作 |
データ定義(DDL) | CREATE, DROP, ALTER | テーブルの作成・変更 |
権限操作(DCL) | GRANT, REVOKE | セキュリティ管理 |
トランザクション(TCL) | BEGIN, COMMIT, ROLLBACK | 安全な処理実行 |
コメント