WebのSQL整形ツール SQL整形
WebでSQL整形が行えるツールです。(Komaさんという方が作ったソフトのようです)
SQL整形:http://koma.webso.jp/2010/04/sql.html
SQLを入力してSQL整形ボタンを押すとSQLのインデントを整えて整形してくれます。
SQLを整形してくれるツールというと、フリーソフトのCSEやSQL Convertがあります。これらも悪くはないのですが、Webベースでブラウザですぐに使えるという点と、複雑な副問い合わせ等が含まれていても崩れることが無いので、SQL整形作業という点ではこちらの方が個人的には気に入っています。
試しに、こんなSQLを入力して整形してみました。
SELECT aaa.col1,aaa.col2,ddd.col1,ddd.col2 FROM aaa inner join (SELECT * FROM (SELECT bbb.col1,bbb.col2 FROM bbb inner join ccc on bbb.col1 = ccc.col1 ) ddd WHERE ddd.col1=1 ) ddd on aaa.col1=ddd.col2
見事に整形してくれました。
SELECT aaa.col1 ,aaa.col2 ,ddd.col1 ,ddd.col2 FROM aaa inner join ( SELECT * FROM ( SELECT bbb.col1 ,bbb.col2 FROM bbb inner join ccc on bbb.col1 = ccc.col1 ) ddd WHERE ddd.col1 = 1 ) ddd on aaa.col1 = ddd.col2
また、プログラム内でSQLを文字列として渡す時のためにコードで囲むという機能があって、例えば「Javaコードで囲む」というボタンをクリックすると、objSqlContent.append(" SELECT "); というように、StringBuffer(StringBuilder)で囲んでくれます。その逆もできます。
自身は、常にExcel等を使ってこの作業をやってました・・。Excelで ="sql.append("""&F43&""");" とか書いて。
プログラムでのSQLの実行は頻繁に記述する部分かと思いますので、これだけでもかなり作業効率化になるかなとおもいます。開発者が使うという視点で作られているなという気がします。
個人的に、SQLを整形して見やすくすることはとても大事な事だと思っています。やたらとゴチャゴチャしたSQLが書かれているが、きれいに整形すると実はそんな複雑なものではなかった・という経験は今までに何度かあります。
見やすく記述されているだけで他者が修正・参照する時にかなりスムーズに行えます。プログラムのように1文1文に分かれておらず、1文で記述するSQLの場合はなおさらわかりやすく記述することが大切ではないかと思います(特に長くて複雑なSQLの場合は)。