今回は、SQLのコーディングスタイルについてお話していきたいと思います。
SQLに関しては、他のプログラミング言語に比べてコーディングスタイルが重要視されていなかったり、特にこれといって決まったものがないと思っています。
そのため、私が今までの経験から個人的に良いと思うSQLのコーディングスタイルを紹介していきたいと思います。
紹介の仕方としては、そのコーディングスタイルを適用する場合と、適用しない場合それぞれどのようになるのかを記載しています。それでは、以下から早速見ていきましょう!
予約後の後は改行する
予約語はつまり、SELECTやFROM、WHEREなどSQLで意味のある句のことです。
予約語の後に改行することで、ブロックごとに記述が整理されて見えるので理解しやすくなると思います。
・このスタイルを適用しない場合
SELECT book_id, name, book_type FROM book WHERE book_type = 'school' ORDER BY book_id;
・このスタイルを適用する場合
SELECT book_id , name , book_type FROM book WHERE book_type = 'school' ORDER BY book_id ;
予約語や関数は大文字で、それ以外は小文字
一つ前で紹介した予約語や、ISNULLなどの関数を大文字で記述し、それ以外の例えばカラム名やテーブル名などは小文字で記載します。
そのように記述することでSQLのコードにメリハリがつき、全体が見やすくなると思います。
また、これは一つ前の「予約後の後は改行する」と一緒に意識して適用することでより見やすくなると思います。
・このスタイルを適用しない場合
select book_id , name , book_type from book where book_type = 'school' order by book_id;
・このスタイルを適用する場合
SELECT book_id , name , book_type FROM book WHERE book_type = 'school' ORDER BY book_id ;
インデントは半角スペース2個
適度なインデントを入れることで、コードが見やすくなることはプログラミング言語などを一度でも触ったことがある方は理解できると思います。
ただし、逆にインデントが多すぎると、階層が深くなった時に見づらくなってしまうと思います。
そのため、私はインデントは半角スペース2個くらいがちょうどいいと思っています。
・このスタイルを適用しない場合
SELECT t1.book_id , t1.name , t1.book_type FROM book t1 WHERE EXISTS ( SELECT * FROM category t2 WHERE t2.category_id = t1.book_type ) ORDER BY t1.book_id ;
※ここでは半角スペース4個
・このスタイルを適用する場合
SELECT t1.book_id , t1.name , t1.book_type FROM book t1 WHERE EXISTS ( SELECT * FROM category t2 WHERE t2.category_id = t1.book_type ) ORDER BY t1.book_id ;
おわりに
いかがでしたでしょうか。少ないですが、上記の内容だけでも全く意識しないで記述されたものと、そうでないのものとではだいぶ見やすさに違いが出ると思います。
最後に補足しておきますが、上記のようなコーディングスタイルについては、必ずこのようにしたほうが良いとか、反対にこれは絶対してはいけないということを決定するものではないです。
例えば、自分が参画しているプロジェクトで決まったコーディングスタイルがあれば、それに従うべきだと思います。誰かが個人の好きな書き方で書いてしまっていた場合、それらのソースコードはとても見づらく感じてしまうと思います。
つまり、自分が好きなコーディングスタイルがあってもそのプロジェクトで決まったコーディングスタイルがあればそれに従うべきということですね。
普段一人でソースコードを書いているような場合は、コーディングスタイルをあまり意識しなくても良いかもしれません。ただし、多くの人が参画するプロジェクトなどでは、本記事で紹介したようなコーディングスタイルを取り決めて統一しておくことで、ソースコードが読みやすくなり、それに伴い修正も簡単になり、結果としてバグも減るかもしれません。
最後までお読みいただきありがとうございました。今回はこの辺で失礼いたします。