Webサイト制作コースのお申し込みはこちら Webサイト制作コースのお申し込みはこちら

SQLを自動的に見やすく整形してくれる、SQLフォーマッターをご紹介します。

いずれも無料で利用可能です。

オンラインSQLフォーマッター

Instant SQL Formatter

Instant SQL Formatter

多機能で、かゆいところに手が届くSQL整形ツールです。

下記のSQLを、実際に整形してみます。

SELECT i.obj#, i.samplesize, i.dataobj#, Nvl(i.spare1, 
i.intcols), i.spare6, Decode(i.pctthres$, NULL, 
NULL, MOD(Trunc(i.pctthres$ / 256), 256)), ist.cachedblk, 
ist.cachehit, ist.logicalread FROM ind$ i, 
ind_stats$ ist, (SELECT enabled, Min(cols) 
unicols, Min(To_number(Bitand(defer, 1))) 
deferrable#, Min(To_number(Bitand(defer, 4))) 
valid# FROM cdef$ WHERE obj# = :1 AND enabled > 
1 GROUP BY enabled) c WHERE i.obj# = c.enabled(+) 
AND i.obj# = ist.obj#(+) AND i.bo# = :1 ORDER 
BY i.obj#

整形後のSQLは以下の通り。

SELECT   i.obj#, 
         i.samplesize, 
         i.dataobj#, 
         Nvl(i.spare1,i.intcols), 
         i.spare6, 
         Decode(i.pctthres$,NULL,NULL,Mod(Trunc(i.pctthres$/256),256)), 
         ist.cachedblk, 
         ist.cachehit, 
         ist.logicalread 
FROM     ind$ i, 
         ind_stats$ ist, 
         ( 
                  SELECT   enabled, 
                           Min(cols)                                    unicols, 
                           Min(To_number(Bitand(defer,1)))              deferrable#, 
                           Min(To_number(Bitand(defer,4))) valid# f rom cdef$ 
                  WHERE    obj#=:1 
                  AND      enabled > 1 
                  GROUP BY enabled) c 
WHERE    i.obj#=c.enabled(+) 
AND      i.obj# = ist.obj#(+) 
AND      i.bo#=:1 
ORDER BY i.obj#

サブクエリを使った複雑なSQLがキレイに整形されています。

また、整形とは少し違いますが、SQLをビジュアライズするSQL Flowというツールも同ページから利用可能です。

SQLFlow: Visualize column impact and data lineage to track columns across transformations by analyzing SQL query.

SQLフォーマッター

SQLフォーマッターFor WEB | ドットツールズ

日本語メニューで利用できるシンプルな整形ツール

多機能な「Instant SQL Formatter」が対応していない「インデントがタブ」「出力がPerl形式対応」という点で、貴重なツール。

SELECT employees.first_name, employees.last_name, dept_emp.from_date, 
dept_emp.to_date FROM dept_emp, employees WHERE dept_emp.emp_no = employees.emp_no

出力をPerl形式で整形した結果がこちら。

"SELECT " .
"    employees.first_name, " .
"    employees.last_name, " .
"    dept_emp.from_date, " .
"    dept_emp.to_date " .
"FROM " .
"    dept_emp, " .
"    employees " .
"WHERE " .
"    dept_emp.emp_no = employees.emp_no "

Format SQL Statements Online

Format SQL Statements Online

シンプルなSQL整形ツールです。

上記SQLをPython形式で出力した結果です。

sql = ('SELECT employees.first_name, employees.last_name, dept_emp.from_date, dept_emp.to_date '
       'FROM dept_emp, employees WHERE dept_emp.emp_no = employees.emp_no ')

エディタのプラグイン版 SQLフォーマッター

ネットに繋がっていない環境で使えるのがプラグインタイプのSQLフォーマッター。

秀丸、サクラエディタ、Eclipse用のSQLフォーマッターが公開されていますが、あまりメンテされていないようです。

そんな中、2019年も継続してメンテされているツールがこちら。

SQL Formatter Plugin for Notepad++

インストールは、プラグインフォルダ下に「SQLinForm」というフォルダを作り、dllファイルをコピーして完了です。

整形したいSQLを選択状態にして、Alt+Shift+Fで整形できます。

整形対象のSQLは、DB2、Oracle、MSAccess、SQL Server、Sybase、MySQL、PostgreSQL、Infomix、Teradata、Netezza SQLに対応。

ただし、無料版だと最低限の整形機能のみ。有料のPro版にすると、全機能を使えるようになります。

SQL Formatterのまとめ

ポテパンダの一言メモ
  • オンラインのSQL整形ツールはネット環境必須だが、メンテされているものが多い
  • Notepad++用のSQL整形ツールのプラグインは無料だと機能限定版

エンジニアになりたい人に選ばれるプログラミングスクール「ポテパンキャンプ 」

ポテパンキャンプは卒業生の多くがWebエンジニアとして活躍している実践型プログラミングスクールです。 1000名以上が受講しており、その多くが上場企業、ベンチャー企業のWebエンジニアとして活躍しています。

基礎的な学習だけで満足せず、実際にプログラミングを覚えて実践で使えるレベルまで学習したいという方に人気です。 プログラミングを学習し実践で使うには様々な要素が必要です。

それがマルっと詰まっているポテパンキャンプでプログラミングを学習してみませんか?

卒業生の多くがWebエンジニアとして活躍

卒業生の多くがWeb企業で活躍しております。
実践的なカリキュラムをこなしているからこそ現場でも戦力となっております。
活躍する卒業生のインタビューもございますので是非御覧ください。

経験豊富なエンジニア陣が直接指導

実践的なカリキュラムと経験豊富なエンジニアが直接指導にあたります。
有名企業のエンジニアも多数在籍し品質高いWebアプリケーションを作れるようサポートします。

満足度高くコスパの高いプログラミングスクール「ポテパンキャンプ」

運営する株式会社ポテパンは10,000人以上のエンジニアのキャリアサポートを行ってきております。
そのノウハウを活かして実践的なカリキュラムを随時アップデートしております。

代表の宮崎もプログラミングを覚えサイトを作りポテパンを創業しました。
本気でプログラミングを身につけたいという方にコスパ良く受講していただきたいと思っておりますので、気になる方はぜひスクール詳細をのぞいてくださいませ。