今回はSQLフォーマッターを使ってSQL文を整形する方法について解説したいと思います。SQL文は実行前にフォーマッターを用いることで可読性が上がるため、フォーマッターによる整形を習慣付けておくことをおすすめします。
↓ ↓ ↓
この記事の内容
どこで改行するか問題
長いSQL文は改行することで可読性が上げることができますが、SQL初心者にはどこで改行するか問題があります。
長めのSQLを書いた際、僕も改行ポイントが分からず困っていました。
そこで活躍するのがSQLフォーマッターです。
このフォーマッターを使用することで、ワンライナー(1行)で書いたSQL文をいい感じに整形してくれます。
# ワンライナーで書いたSQL
SELECT test_users.id FROM test_users INNER JOIN test_user_logs ON user_id = test_users.id WHERE deleted_at IS NULL AND test_users.created_at >= DATE_SUB(NOW(),INTERVAL 1 DAY) AND confirmed_at IS NULL;
# フォーマッターによる整形後
SELECT
test_users.id
FROM
test_users
INNER JOIN
test_user_logs
ON user_id = test_users.id
WHERE
deleted_at IS NULL
AND test_users.created_at >= DATE_SUB(NOW(), INTERVAL 1 DAY)
AND confirmed_at IS NULL
;
SQLフォーマッターの調整
SQLフォーマッターで調整できることは以下の6つです。
- カンマ整形: カンマの位置を調整
- AND/OR/ON整形: AND/OR/ONの位置を調整
- インデント: インデントの幅を調整
- JOIN形式: JOINの記載を調整
- 予約語: 予約語(selectやfrom)の文字を調整
- 出力先: 出力先(クエリorエディタ)を調整

実際にSQLをフォーマットする流れは以下のようになります。
まとめ
- 長いSQL文はフォーマッターを用いることで整形できる
- SQLフォーマッターでは「カンマ整形」「AND/OR/ON整形」「インデント」「JOIN形式」「予約語」「出力先」の6つを調整することができる
参考
今回はSQLフォーマッターを使ってSQL文を整形する方法について解説しました。SQLに慣れないうちはフォーマッターを活用して実装していきましょう。