← クエスト一覧へ

SQL ガイドブック

🏠

基礎知識

2 記事
1
SQLの基本構文―SELECT文を理解する

SQLの9割はSELECT文(データを取得する命令)です。まずここをしっかり理解しましょう。

-- テーブル「users」から全カラムを取得
SELECT * FROM users;

-- 特定のカラムだけを取得
SELECT name, age FROM users;

-- 条件で絞り込む(18歳以上のユーザー)
SELECT name, age FROM users
WHERE age >= 18;

-- 年齢の降順で並べる
SELECT name, age FROM users
ORDER BY age DESC;

-- 上位3件だけ取得
SELECT name FROM users
ORDER BY age DESC
LIMIT 3;
📌 SQL構文の順番(重要)

SQLの句は必ず以下の順番で書きます:

SELECT カラム
FROM テーブル
WHERE 条件
GROUP BY グループ化
HAVING 集計条件
ORDER BY 並び順
LIMIT 件数
⚠️ SQL文は大文字・小文字を区別しない

SELECTselect も同じ意味ですが、SQLの予約語は大文字で書くのが慣習です(読みやすさのため)。

2
GROUP BYとJOINを図で理解する
📊 GROUP BY ― グループ別に集計する
-- 部門ごとの平均給与を求める
SELECT department, AVG(salary) AS avg_salary
FROM employees
GROUP BY department;

-- HAVINGで集計後に絞り込む
SELECT department, COUNT(*) AS cnt
FROM employees
GROUP BY department
HAVING COUNT(*) >= 5;  -- 5人以上の部門のみ

※ WHERE は集計前の絞り込み、HAVING は集計後の絞り込みです。

🔗 JOIN ― テーブルを結合する
-- ordersテーブルとusersテーブルを結合
SELECT u.name, o.product, o.amount
FROM orders o
INNER JOIN users u ON o.user_id = u.id;

-- 結合の種類
-- INNER JOIN: 両方に存在するデータのみ
-- LEFT JOIN:  左テーブルのデータをすべて残す
-- RIGHT JOIN: 右テーブルのデータをすべて残す
💡 JOINのイメージ

「注文テーブル」には user_id(ユーザーのID番号)しかない。
「ユーザーテーブル」には id と name がある。
→ JOINすることで「注文した人の名前」を一緒に取得できる。