WebのSQL整形ツール SQL整形


WebでSQL整形が行えるツールです。(Komaさんという方が作ったソフトのようです)

SQL整形:http://koma.webso.jp/2010/04/sql.html

SQLを入力してSQL整形ボタンを押すとSQLのインデントを整えて整形してくれます。

SQLを整形してくれるツールというと、フリーソフトのCSESQL 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の場合は)。