1. はじめに
SQLを記述する際は、ほかの開発者が読んだときに理解しやすいことも重要です。
読みにくいSQLは、仕様の把握や修正に時間がかかるだけでなく、条件の記述ミスなどの原因にもなります。
この記事では、SQLの可読性を向上させるために意識したい7つのポイントを紹介します。
2. SELECT句はカラムごとに改行する
取得するカラムを1行に詰め込むと、カラムの数が多い場合に読みにくくなります。
修正前
SELECT employee_id, employee_name, department_id, salary FROM employees;修正後
SELECT
employee_id
,employee_name
,department_id
,salary
FROM employees;カラムごとに改行することで、取得対象を確認しやすくなります。また、カラムの追加や削除も容易になります。
3. SQLの句ごとに改行する
SELECT、FROM、WHEREなどの句をそれぞれ改行すると、SQLの構造が明確になります。
修正前
SELECT employee_name, salary FROM employees WHERE department_id = 10 ORDER BY salary DESC;修正後
SELECT
employee_name,
salary
FROM employees
WHERE department_id = 10
ORDER BY salary DESC;句ごとに記述位置を統一することで、SQLの処理内容を上から順番に把握しやすくなります。
4. テーブルに別名を付ける
複数のテーブルを結合する場合、テーブル名が長いとSQL全体が読みにくくなることがあります。
修正前
SELECT
employees.employee_name,
departments.department_name
FROM employees
INNER JOIN departments
ON employees.department_id = departments.department_id;修正後
SELECT
e.employee_name,
d.department_name
FROM employees e
INNER JOIN departments d
ON e.department_id = d.department_id;テーブルに別名を付けることで、カラムがどのテーブルに属しているかを簡潔に表現できます。
ただし、別名が短すぎると意味が分かりにくくなるため、テーブル名を連想できる別名を使用することが重要です。
5. WHERE句の条件を整理する
複数の条件を1行に記述すると、条件の関係が分かりにくくなります。
修正前
SELECT
employee_id,
employee_name
FROM employees
WHERE department_id = 10 AND status = 'ACTIVE' AND salary >= 300000;修正後
SELECT
employee_id,
employee_name
FROM employees
WHERE department_id = 10
AND status = 'ACTIVE'
AND salary >= 300000;条件ごとに改行することで、検索条件の追加や変更が容易になります。
また、ANDとORを組み合わせる場合は、括弧を使用して条件のまとまりを明示します。
SELECT
employee_id,
employee_name
FROM employees
WHERE (department_id = 10 OR department_id = 20)
AND status = 'ACTIVE';この例では、部署番号が10または20であり、かつ有効な社員を検索します。
6. 意味が分かる名前を使用する
テーブルやカラムの別名に、意味が分かりにくい名前を付けることは避けます。
修正前
SELECT
a.name,
b.name
FROM employees a
INNER JOIN departments b
ON a.dept_id = b.id;修正後
SELECT
e.employee_name,
d.department_name
FROM employees e
INNER JOIN departments d
ON e.department_id = d.department_id;修正後のSQLでは、社員名と部署名のどちらを取得しているかが明確です。
既存のテーブルやカラムの命名規則に合わせ、意味を推測しやすい名前を使用することが大切です。
7. 複雑なSQLにはコメントを付ける
集計条件や業務固有のルールなど、SQLだけでは意図が伝わりにくい場合はコメントを記述します。
SELECT
employee_id,
salary
FROM employees
WHERE status = 'ACTIVE'
-- 対象は有効な社員に限定する
AND salary >= 300000;コメントは、SQLの構文を説明するためだけでなく、業務上の理由や特殊な条件を説明するために使用します。
ただし、SQLを読めば明らかな内容をすべてコメントにすると、かえって読みにくくなるため注意が必要です。
8. インデントと命名規則を統一する
SQLを複数人で開発する場合、インデントやキーワードの表記方法を統一することが重要です。
例えば、次のようなルールを決めておくと、SQLの見た目を揃えられます。
- SELECT、FROM、WHEREなどのキーワードは大文字にする
- 句ごとに改行する
- SELECT句のカラムはインデントして1行ずつ記述する
- JOINの結合条件はON句に記述する
- テーブルやカラムの命名規則を統一する
これらのルールをチーム内で共有することで、コードレビューや保守作業を効率化できます。
9. まとめ
SQLを読みやすくするためには、次の7つのポイントを意識することが重要です。
- SELECT句はカラムごとに改行する
- SQLの句ごとに改行する
- テーブルに別名を付ける
- WHERE句の条件を整理する
- 意味が分かる名前を使用する
- 複雑なSQLにはコメントを付ける
- インデントと命名規則を統一する
SQLの可読性を高めることは、単に見た目を整えるだけではありません。処理内容の理解を容易にし、修正ミスの防止や保守性の向上にもつながります。
ここまで読んでいただき、ありがとうございます。もしこの記事の技術や考え方に少しでも興味を持っていただけたら、ネクストのエンジニアと気軽に話してみませんか。
- 選考ではありません
- 履歴書不要
- 技術の話が中心
- 所要時間30分程度
- オンラインOK