Rails

【SQL初心者の味方】SQLフォーマッターを使ってSQL文を整形する方法

MySQL

 

今回は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をフォーマットする流れは以下のようになります。

Image from Gyazo

まとめ

  • 長いSQL文はフォーマッターを用いることで整形できる
  • SQLフォーマッターでは「カンマ整形」「AND/OR/ON整形」「インデント」「JOIN形式」「予約語」「出力先」の6つを調整することができる

参考

SQLフォーマッターFor WEB

 

 

今回はSQLフォーマッターを使ってSQL文を整形する方法について解説しました。SQLに慣れないうちはフォーマッターを活用して実装していきましょう。